PHP serialize ve unserialize fonksiyonları

serialize ( mixed $değer )

serialize() kısaca PHP değerlerini, yapısını ve türünü kaybetmeden saklamak veya aktarmak için kullanışlıdır.

Hangi durumlarda işimize yarar diye soracak olursanız. Veritabanında bir sütunda birden fazla değer tutmak istediğinizde bu fonksiyon bunu mümkün kılar. Dizi şeklinde verilerinizi hazırlayıp bu fonksiyondan geçirip ve çıkan sonucu veritabanına kaydedebilirsiniz. 

$kitaplar  = [
    [
        'ad' => 'Yaşamın Kıysında!',
        'yazar' => 'Frances Ashcroft'
    ],
    [
        'ad' => 'Başlangıç',
        'yazar' => 'Dan Brown'
    ],
];

$sonuc = serialize($kitaplar);
var_dump($sonuc);
--------------------------
Yukarıdaki işlemin sonucu:
--------------------------
string(157) "a:2:{i:0;a:2:{s:2:"ad";s:21:"Yaşamın Kıysında!";s:5:"yazar";s:16:"Frances Ashcroft";}i:1;a:2:
{s:2:"ad";s:12:"Başlangıç";s:5:"yazar";s:9:"Dan Brown";}}"

unserialize ( string $dizge )

unserialize() tek bir dizgeleştirilmiş değişken alır ve bunu tekrar bir PHP değeri haline getirir. Yani serialize fonksiyonu ile yaptığınız işlemi geri alır. Veritabanına kaydettiğiniz verileri bununla tekrar PHP koduna çevirip işlemlerinizi yapabilirsiniz.

$kitaplar = 'a:2:{i:0;a:2:{s:2:"ad";s:21:"Yaşamın Kıysında!";s:5:"yazar";s:16:"Frances Ashcroft";}i:1;a:2:
{s:2:"ad";s:12:"Başlangıç";s:5:"yazar";s:9:"Dan Brown";}}';

$sonuc = unserialize($kitaplar);
var_dump($sonuc);
--------------------------
Yukarıdaki işlemin sonucu:
--------------------------
array(2) {
  [0]=>
  array(2) {
    ["ad"]=>
    string(21) "Yaşamın Kıysında!"
    ["yazar"]=>
    string(16) "Frances Ashcroft"
  }
  [1]=>
  array(2) {
    ["ad"]=>
    string(12) "Başlangıç"
    ["yazar"]=>
    string(9) "Dan Brown"
  }
}

Bir cevap yazın