ဖန်​ရှင် unserialize

ဖန်​ရှင် unserialize သည် စီးရီးအဖြစ်​ပြောင်း​ထား​သော စာ​ကြောင်း​တစ်​ခု​ကို လက်​ခံ​ပြီး သက်​ဆိုင်​ရာ PHP တန်ဖိုး​ကို ပြန်​လည်​ပေး​ပို့​သည်။ ၎င်း၏ ပထမ ပါရာမိတ်​အ​နေ​နှင့် စာ​ကြောင်း​တစ်​ခု​ကို လက်​ခံ​ပြီး၊ ဒုတိယ မဖြစ်မနေ မလိုအပ်သော ပါရာမိတ်​အ​နေ​နှင့် ဒီစီးရီးအဖြစ်​ပြောင်း​ခြင်း ဖြစ်​စဉ်​ကို ထိန်း​ချုပ်​ရန် ရွေး​ချယ်​စရာ​များ အ​ခင်းအကျင်း​ကို လက်​ခံ​သည်။

ဝါကျဖွဲ့ထုံး

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

နမူနာ

စီးရီးအဖြစ်​ပြောင်း​ထား​သော စာ​ကြောင်း​ကို အ​ခင်းအကျင်း​အဖြစ် ပြန်​လည်​ပြောင်း​လဲ​ကြ​ရ​အောင်။

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);
?>

ကုဒ် အ​ကောင်​အထည်​ဖော်​မှု ၏ ရလဒ်။

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

နမူနာ

အော့်ဂျက်တ် တစ်​ခု​ကို ဒီစီးရီးအဖြစ်​ပြောင်း​ခြင်း။

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

ကုဒ် အ​ကောင်​အထည်​ဖော်​မှု ၏ ရလဒ်။

php123

နမူနာ

ရွေး​ချယ်​စရာ 'allowed_classes' ကို အသုံးပြုခြင်း။

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

ကုဒ် အ​ကောင်​အထည်​ဖော်​မှု ၏ ရလဒ်။

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

ဤ​အ​ကြောင်း​လည်း ကြည့်​ရှု​ပါ

  • ဖန်​ရှင် serialize,
    သည် တန်ဖိုး​တစ်​ခု​ကို စီးရီးအဖြစ်​ပြောင်း​ထား​သော စာ​ကြောင်း​အဖြစ် ပြောင်း​လဲ​ပေး​သည်
  • ဖန်​ရှင် json_encode,
    သည် တန်ဖိုး​တစ်​ခု​ကို JSON စာ​ကြောင်း​အဖြစ် ပြောင်း​လဲ​ပေး​သည်