Problem : Degisken icerigini bir yerde saklamak istiyorsunuz.

Cozum : serialize () unserialize () hazir fonksiyonlarini kullanarak kendi fonksiyonlarinizi yazin.

loadsave.inc

<?
//
// File: loadsave.inc
// Library functions for saving and loading data to and from a file
//
//

//
// int save (string varname) :
// Save the value of varname to file
//

function save($var) {
global $$var;
$data = serialize($$var); // String Rep. of $$var
$filename = "php_serialized_vars/" . $$var . ".txt";
$fp = @fopen($filename, "w") or die ("Cannot open $filename for write ");

fwrite($fp, $data);
@fclose($fp) or die ("Cannot close $filename");
return(true);
}

//
// int load (string varname)
// Load the value of varname from a file
//
function load($var)
{
global $$var; // Put the saved variable in the global
// namespace
$filename = "php_serialized_vars/" . $$var . ".txt";
$fp = @fopen($filename, "r") or die ("Cannot open $filename for read ");

$data = fread($fp, filesize($filename));
@fclose($fp) or die("Cannot close $filename");

$$var = unserialize($data);
return(true);
}
?>

Simdi de bu fonksiyonlari programlariniz icinden nasil kullanacaginiza bakalim :

save.

<?
$foo = "merhaba";
save ('foo');
?>
<a href="load.">Burayi tiklayiniz</a>

load.

<?
load('foo');
print $foo;
?>

Tartisma : Verinin dizi,nesne vb. ne olduguna bakilmadan serialize () fonksiyonu ile string seklinde bir sikistirma yapilir.unserialize fonksiyonu bu string okuyarak tekrar eski haline getirir.

Birden fazla degiskenin ayni anda serialize edilmesi islemi

Bu islem ile ayni zamanda diger programlama dilleri veya surecleri ile verilerinizi paylasabilirsiniz.

Cozum : WDDX fonksiyonlari ile sikistirma yapiniz.( http://www.wddx.org/ )

<?
$ice_cream = array ("Mint Chocolate Chip","Vanilla","Chocalate","Coffee");
$packet_id = wddx_packet_start("");
wddx_add_vars($packet_id, "ice_cream");
$packet = wddx_packet_end($packet_id);
?>

Web Distributed Data sXchange formati, " Uygulamalar arasinda kompleks veri alis-verisi icin gelistirilmis bir mekanizmadir."Bu fonksyionlar ile sikistirma yapildiginda veri "paketleri" hazirlanir.Bu pakelter degiskeninizin sakladigi veri ile ilgili bilgi icerir.Bu pakelter saklanir istendiginde programiniz tarafindan tekrar okunur.

WDDX Deserialization

WDDX-ile sikistirilmis paket var cozmek, yani degiskenin degerini okumak istiyorsunuz.

wddx_deserialize fonksiyonu ile WDDX string'ini degiskenine donusturun :

<?

$favorite_tv_shows = array("M*A*S*H", "Seinfeld", "The Simpsons");
$text = wddx_serialize_vars($favorite_tv_shows);
$favorite_tv_shows_again = wddx_deserialize ($text);

foeeach ($favorite_tv_shows_again as $show) {
print "$shown<br>n";
}

?>

kaynak: ordan burdan

Tags: , , , , , , , , , , , , ,
Php - Serialize () Ve Unserialize () (scripti, nasıl, nedir?) konusu
Benzer yazılar:
    Benzer yazı yok