Unserialize funksiýasy

unserialize funksiýasy serializirlenen setir kabul edýär we degişli PHP bahasyny yzyna gaýtarýar. Ilkinji parametri hökmünde ol setiri kabul edýär, ikinji islege bagly parametri bolsa deserializasiýa prosesini dolandyrmak üçin opsiýalar sanawydyr.

Sintaksis

phpunserialize(string $data, array $options = []): mixed

Mysal

Serializirlenen setiri yzyna sanawa öwüreli:

php<?php
  $serialized = 'a:3:{i:0;s:1:"a";i:1;s:1:"b";i:2;s:1:"c";}';
  $res = unserialize($serialized);
  print_r($res);
?>

Kody ýerine ýetirmegiň netijesi:

php['a', 'b', 'c']

Mysal

Obýekti deserializasiýa etmek:

php<?php
  class Test {
    public $prop = 123;
  }
  
  $obj = new Test();
  $serialized = serialize($obj);
  $res = unserialize($serialized);
  
  echo $res->prop;
?>

Kody ýerine ýetirmegiň netijesi:

php123

Mysal

'allowed_classes' opsiýasyny ulanmak:

php<?php
  $serialized = 'O:4:"Test":1:{s:4:"prop";i:123;}';
  $res = unserialize($serialized, ['allowed_classes' => false]);
  var_dump($res);
?>

Kody ýerine ýetirmegiň netijesi:

phpobject(__PHP_Incomplete_Class)#1 (2) {
  ["__PHP_Incomplete_Class_Name"]=>
  string(4) "Test"
  ["prop"]=>
  int(123)
}

Şeýle-de görmeli

  • serialize funksiýasyny,
    ýöne bir bahany serializirlenen setire öwürýän
  • json_encode funksiýasyny,
    ýöne bir bahany JSON setirine öwürýän