Gravando e Recuperando Variaveis em Arquivos Externos
Como gravar uma variável num arquivo texto para ser utilizada depois ?
Existe várias maneiras de fazer isso, mas no PHP isso é muito simples. Utilizando as funções serialize() e unserialize() o trabalho de gravar uma variável num arquivo ficou realmente fácil.
Veja o exemplo das duas funções abaixo, uma para gravar e a outra para ler do arquivo texto, criadas para manipular uma variável num arquivo texto.
Nesse exemplo abaixo estamos gravando uma array (vetor) num arquivo e depois lendo essa array direto do arquivo novamente utilizando as funções serialize() e unserialize() respectivamente:
Realmente muito simples, não acha? Esse mesmo tipo de script pode ser expandido para ler e gravar qualquer tipo de variáveis usadas no PHP, como objetos ou strings. A própria implementação de Sessions no PHP utiliza esse tipo de algoritmo.
Existe várias maneiras de fazer isso, mas no PHP isso é muito simples. Utilizando as funções serialize() e unserialize() o trabalho de gravar uma variável num arquivo ficou realmente fácil.
Veja o exemplo das duas funções abaixo, uma para gravar e a outra para ler do arquivo texto, criadas para manipular uma variável num arquivo texto.
Nesse exemplo abaixo estamos gravando uma array (vetor) num arquivo e depois lendo essa array direto do arquivo novamente utilizando as funções serialize() e unserialize() respectivamente:
<?php function ler_arquivo($file_name) { $fd = @fopen($file_name, 'r'); $file_content = fread($fd, filesize($file_name)); fclose($fd); $var = unserialize($file_content); return $var; } function gravar_arquivo($file_name, $var) { $content = serialize($var); $fd = @fopen($file_name, 'w+'); fwrite($fd, $content); fclose($fd); chmod($file_name, 0644); return true; } $file_name = 'teste.txt'; $the_array = array( 'nome' => 'José da Silva', 'end' => 'Rua Sem Nome, 3105', 'tel' => '5555 5555', 'cidade' => 'São Paulo' ); gravar_arquivo($file_name, $the_array); $resultado = ler_arquivo($file_name); echo $resultado['nome'] . "<br />"; echo $resultado['end'] . "<br />"; echo $resultado['tel'] . "<br />"; echo $resultado['cidade'] . "<br />"; ?>
Realmente muito simples, não acha? Esse mesmo tipo de script pode ser expandido para ler e gravar qualquer tipo de variáveis usadas no PHP, como objetos ou strings. A própria implementação de Sessions no PHP utiliza esse tipo de algoritmo.
Analizando os codigos do uebimiau, verifiquei que ele trabalhava dessa forma, pois na epoca q ele começou a ser desenvolvido (PHP3) ainda naum existiam as sessions :)
24/01/2003 11:43am
(~22 anos atrás)
serialize() retorna uma string contendo uma representação linear de qualquer valor que pode ser armazenado no PHP.
unserialize() pode ser utilizado para recriar os valores da variável original.
Você pode fazer isso com qualquer tipo de variavel.Com objetos você tem que tomar cuidado ,de colocar a classe que ele pertence junto,senão é ineficaz.
unserialize() pode ser utilizado para recriar os valores da variável original.
Você pode fazer isso com qualquer tipo de variavel.Com objetos você tem que tomar cuidado ,de colocar a classe que ele pertence junto,senão é ineficaz.
12/01/2003 12:40am
(~22 anos atrás)
Realmente, é muito simples mas também, é bastante prático...
* Nem sabia que existia essas funções[ serialize() e unserialize() ].
hehehehehehehe
* Nem sabia que existia essas funções[ serialize() e unserialize() ].
hehehehehehehe
09/01/2003 10:04pm
(~22 anos atrás)
Na realidade ,com seus artigo você pode fazer outras ,prinpalmente com session .
Dá uma olhada aqui : http://www.php.net/manual/pt_BR/language.oop.serialization.php
Dá uma olhada aqui : http://www.php.net/manual/pt_BR/language.oop.serialization.php
09/01/2003 9:24pm
(~22 anos atrás)
Até está salvando e gravando no arquivo, mas aparece assim:
[code]a:5:{i:0;s:10:"CONSUMIDOR";i:1;s:13:"Astra 2.0 16V";i:2;s:4:"2010";i:3;s:7:"aaa1245";i:4;s:0:"";}[/code]
Quando dou um print_r nas SESSIONs que venho passando entre as páginas aparece assim:
Obs: dei uma separada para melhor compreenção.
[code]
Array ( [usuario] =>
Array ( [id] => 2 [nome] => TESTE [login] => TESTE [senha] => TESTE
[nomeCliente] => CONSUMIDOR
[cliente] => TESTANDO [loja] => TESTE )
[veiculo] => Array ( [carroMontadora] => GM - General Motors [carroModelo] => Astra 2.0 16V [carroAno] => 2010 [carroPlaca] => aaa1245 )
[produtos_17] => 1
[produtos_18] => 1
Obs: produtos_ = nome session, 1 é a quantidade de cada produto que foi incluído no carrinho.
)
[/code]