Serialize anlamıyorum ()

3 Cevap

Ben bu işlevi bakıyorum: PHP için () serialize ve ben gerçekten bir fonksiyon ne olduğunu anlamıyorum. Birisi çıkışı ile basit bir örnek verebilir misiniz?

3 Cevap

Temelde, bulaşabilir böylece bir dize veri serialize is to transform any (alsmost) tür, amacı, saklanan ...

Hızlı bir örnek:

$my_array = array(
    'a' => 10,
    'glop' => array('test', 'blah'),
);
$serialized = serialize($my_array);
echo $serialized;

Bu çıktıyı alırsınız:

a:2:{s:1:"a";i:10;s:4:"glop";a:2:{i:0;s:4:"test";i:1;s:4:"blah";}}


And, later, you can unserialize that string, to get the original data back :

$serialized = 'a:2:{s:1:"a";i:10;s:4:"glop";a:2:{i:0;s:4:"test";i:1;s:4:"blah";}}';
$data = unserialize($serialized);
var_dump($data);

Alacak:

array
  'a' => int 10
  'glop' => 
    array
      0 => string 'test' (length=4)
      1 => string 'blah' (length=4)


Common uses include :

  • Başka bir PHP komut dosyası PHP veri (almost) her türlü aktarma becerisi
  • Tek bir veritabanı alanında PHP veri (almost) her türlü saklamak için yeteneği - bu veritabanı tarafında oldukça iyi bir uygulama olmasa bile, bazen yararlı olabilir
  • Yapabilirsiniz sadece mağaza dizeleri, bazı önbelleğe alma mekanizmasından (APC, memcached, dosyaları, ...) veri depolama yeteneği

Eğer sadece PHP ile çalışan (as it's a PHP-specific format, that's able to work with almost any kind of PHP data, and is really fast) zaman kullanarak serialize büyük olduğunu, ancak, unutmayın; ama aynı zamanda PHP daha başka bir şey ile çalışmak zorunda olduğunda bu büyük değil (as it's PHP-specific). Bu gibi durumlarda, XML, JSON (json_encode and json_decode bakınız), kullanabilirsiniz ...


In the PHP manual, you can also read the
Object Serialization section, btw.

Eğer bir dizi kaydetmek ya da örneğin bir veritabanı üste normalize itiraz istiyorsanız olmadan basık bir dizi depolamak ya da itiraz edemez, çünkü serialize() (ve unserialize()) arkadaşlar vardır Önce bir dizeye dönüm.

Bu JSON kodlayan dışında json_encode() ve json_decode() benzerdir.

Bkz this example, oldukça açık olmalıdır.