PHP တွင် Serialize function သည် php variable ကို string တစ်ခုသို့ကူးပြောင်းနိုင်သော string တစ်ခုသို့ကူးပြောင်းခြင်း, လွှဲပြောင်းခြင်း, လွှဲပြောင်းခြင်း, unserialize function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဤ string ကိုမူလ PHP variable သို့ပြန်သွားနိုင်သည်။
<?php
$data = array("name" => "Alice", "age" => 25);
$serializedData = serialize($data); // ဒေတာ Serialize
echo $serializedData;
?>
ထုတ်လုပ်မှု -
a:2:{s:4:"name";s:5:"Alice";s:3:"age";i:25;}
PHP တွင်အတန်းတစ်ခု၏သာဓကများ (အရာဝတ်ထု) ကိုလည်း serialized ဖြစ်နိုင်သည်။ Serialize function ကိုမှတစ်ဆင့်အရာဝတ်ထုကို string တစ်ခုထဲသို့ပြောင်းလဲပြီး၎င်းကိုအခြားဆာဗာသို့လွှဲပြောင်းနိုင်သည်သို့မဟုတ်ဒေတာဘေ့စ်သို့သိမ်းဆည်းနိုင်သည်။ အပြန်အလှန်အားဖြင့် unserialize function ကို အသုံးပြု. ကျွန်ုပ်တို့သည် string ကိုအရာဝတ်ထုတစ်ခုအဖြစ်ပြောင်းလဲနိုင်သည်။
<?php
class User {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
$user = new User("Alice", 25);
$serializedUser = serialize($user); // အရာဝတ်ထု serialize
echo $serializedUser;
?>
ထုတ်လုပ်မှု -
O:4:"User":2:{s:4:"name";s:5:"Alice";s:3:"age";i:25;}
ဆာဗာများအနှံ့ဒေတာများကိုထပ်တူပြုခြင်းသည်များသောအားဖြင့် http တောင်းဆိုမှုများသို့မဟုတ်အခြား server သို့ပြောင်းရွှေ့ခြင်းပါဝင်သည်။ အရာဝတ်ထုများသို့မဟုတ် arrays များကို serialize လုပ်ရန် PHP ၏ serialize ကို သုံး. curl သို့မဟုတ်အလားတူ http တောင်းဆိုမှုများမှတဆင့်ပစ်မှတ် server သို့ပို့နိုင်သည်။
ကျွန်ုပ်တို့တွင်ဆာဗာတစ်ခု, ဆာဗာနှင့်ဆာဗာ B, ဆာဗာကို server b. တစ်ပြိုင်တည်းချိန်ကိုက်ရန်လိုအပ်သည်ဆိုပါစို့။
<?php
$data = array("name" => "Alice", "age" => 25);
$serializedData = serialize($data);
// အသုံးပြု cURL ဆာဗာသို့ဒေတာပို့ပါ B
$ch = curl_init('https://gitbox.net/receive_data.php'); // ပစ်မှတ်ဆာဗာလိပ်စာ
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('data' => $serializedData)); // Serialized ဒေတာကူး
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
<?php
if (isset($_POST['data'])) {
$serializedData = $_POST['data'];
$data = unserialize($serializedData); // 反ဒေတာ Serialize
print_r($data);
} else {
echo "No data received.";
}
?>
ဤဥပမာတွင်ဆာဗာသည် serialized data ကို curl မှတဆင့်ဆာဗာ B သို့ပို့သည်။ ဒေတာများကိုလက်ခံရရှိပြီးနောက်ဆာဗာ B သည်ဒေတာနှင့်ထုတ်လုပ်မှုကိုပြန်လည်ထူထောင်ရန်အတွက် unserialize function ကိုအသုံးပြုသည်။
ဆာဗာများအနှံ့ရှိဒေတာများကိုတစ်ပြိုင်တည်းချိန်ကိုက်သောအခါအချက်အလက်များကိုဆိုင်းငံ့ထားခြင်းနှင့် deserializing ပြုလုပ်ခြင်းအပြင်အောက်ပါအချက်များကိုအာရုံစိုက်ရန်လိုအပ်သည်။
ဒေတာလုံခြုံရေး - အချက်အလက်ထုတ်လွှင့်နေစဉ်ဒေတာများကိုအနှောင့်အယှက်ဖြစ်စေနိုင်သည်။
အမှားကိုင်တွယ်ခြင်း - အချက်အလက်များ၏သမာဓိကိုသေချာစေရန်နှင့်ကွန်ယက်ပြတ်တောက်မှုများ, အချိန်ကုန်များနှင့်အခြားပြ problems နာများကိုကိုင်တွယ်ဖြေရှင်းပါ။ သင် HTTP တုံ့ပြန်မှုကုဒ်ကိုစစ်ဆေးပြီး၎င်းသည်အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်အချက်အလက်များကိုပြန်ပို့နိုင်သည်။
ဒေတာရှေ့နောက်ညီညွတ်မှု - ဆာဗာများတစ်ဝှမ်းတွင်ဒေတာထပ်တူပြုခြင်းသည်ဒေတာရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရမည်။