PHP တွင် Serialize function ကိုသိမ်းဆည်းထားသည့်ဖိုင် (ဥပမာအားဖြင့် array သို့မဟုတ်အရာဝတ်ထုတစ်ခု) ကိုသိုလှောင်ထားသည့် string တစ်ခုသို့ပြောင်းလဲရန်အသုံးပြုသည်။ ဤဖြစ်စဉ်ကိုမကြာခဏ serialization ဟုခေါ်လေ့ရှိပြီးပြောင်းပြန်စစ်ဆင်ရေးကို unserialize ဟုခေါ်သည်။ ဤဆောင်းပါးသည် Serialize function ကို Serialize function ကို serialized လုပ်ပြီးနောက်တွင်ဖော်ပြထားသောအချက်အလက်များပါ 0 င်သည့်အချက်အလက်များကိုမိတ်ဆက်ပေးလိမ့်မည်။
Memory ရှိအချက်အလက်များ (ဥပမာ - array, objects များကဲ့သို့သော) မှတ်ဉာဏ်ရှိဒေတာအဆောက်အအုံများကို (array များ, အရာဝတ်ထုများ) ကိုဖိုင်သို့မဟုတ်ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသောပုံစံသို့ပြောင်းလဲခြင်းကိုရည်ညွှန်းသည်။ သို့မဟုတ်ကွန်ယက်ပေါ်တွင်လွှဲပြောင်းနိုင်သည်။ PHP တွင် Serialize function သည်မည်သည့် PHP variable ကိုမဆို (arrays, obars, booleans များ, နံပါတ်များ, နံပါတ်များ,
$array = array('apple', 'banana', 'cherry');
$serializedData = serialize($array);
echo $serializedData;
output ရလဒ်များသည်ဆင်တူသည် -
a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:6:"cherry";}
Serialized data သည် data အမျိုးအစား, အရှည်စစသည့် metadata ပါ 0 င်သည့် string တစ်ခုဖြစ်သည်။ အထက်ပါဥပမာကိုတစ်ဆင့်ချင်းစီဆန်းစစ်ကြည့်ရအောင်။
A: 3 ဆိုသည်မှာ၎င်းသည် array ( က ) ဖြစ်သည်ဟုဆိုလိုသည်။ array တွင် element 3 ခုရှိသည်။
{} အတွက်ပါဝင်မှု {array ၏ဒြပ်စင်ကိုကိုယ်စားပြုတယ်။ Element တစ်ခုစီတွင်သော့ချက်တန်ဖိုးတွဲတစ်ခုရှိသည်။
i: 0 ကို ဆိုလိုသည်မှာသော့သည်ကိန်းဂဏန်းဖြစ်သည် ။
S: 5- 5. "Apple" ဆိုသည်မှာတန်ဖိုးသည်အရှည် 5 ခုနှင့်တန်ဖိုးသည် "Apple" ဖြစ်သည်။
ငါ: 1; S: 6: 6: "ငှက်ပျော" သည် ခင်းကျင်း၏ဒုတိယ element ကိုကိုယ်စားပြုသည်။
i: 2; S: 6: 6: "ချယ်ရီ" သည် ခင်းကျင်း၏တတိယအချက်ကိုကိုယ်စားပြုသည်။
i : Integer အမျိုးအစား
S : string အမျိုးအစား
A : array အမျိုးအစား
o : အရာဝတ်ထုအမျိုးအစား
B : Boolean Value အမျိုးအစား
D : နှစ်ထပ် precision point နံပါတ်အမျိုးအစား
ဤအမှတ်အသားသည်ဒေတာအမျိုးအစားအချက်အလက်များကိုအမှန်တကယ်ဒေတာအမျိုးအစားနှင့်ဖွဲ့စည်းပုံကိုတိကျစွာပြန်လည်တည်ဆောက်နိုင်ရန်အတွက်အချက်အလက်အမျိုးအစားအချက်အလက်များကိုသိမ်းဆည်းထားသည့်အချက်အလက်အမျိုးအစားအချက်အလက်များကိုသိမ်းဆည်းထားသည်။
အထက်တွင်ဖော်ပြခဲ့သည့်အတိုင်း serialization format မှာ array ပုံစံ, သော့ချက်တန်ဖိုးတွဲတစ်ခုစီ၏အမျိုးအစားနှင့်ဒေတာများပါ 0 င်သည်။ ၎င်းသည် PHP သည် deserialized သောအခါ PHP ကိုတိတိကျကျပြန်လည်စတင်ရန်ခွင့်ပြုသည်။
အရာဝတ်ထုများအတွက် 0 ါရှင်များ၏ attribute အရေအတွက်နှင့်တန်ဖိုးများကို 0 င် ရောက်ယှဉ်ပြိုင်နိုင်သည့်အရာဝတ်ထုများ၏အတန်းအမည်, ဥပမာတစ်ခုအနေဖြင့်ရိုးရှင်းသောအရာတစ်ခုကိုယူပါ။
class Person {
public $name;
public $age;
}
$person = new Person();
$person->name = "John";
$person->age = 30;
$serializedPerson = serialize($person);
echo $serializedPerson;
အဆိုပါ serialized output ကိုအောက်ပါအတိုင်းဖြစ်နိုင်သည်:
O:6:"Person":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}
o: 6: "Person" ဆိုသည်မှာ၎င်းသည် လူတစ် ဦး အမည်ရှိသောအရာဝတ်ထုတစ်ခုဖြစ်ပြီးအတန်းအစားအမည်အရှည် 6 ခုပါရှိသည်။
2 ဆိုလိုသည်မှာအရာဝတ်ထု 2 ဂုဏ်သတ္တိများရှိပါတယ်ဆိုလိုသည်။
{S: 4: 4: "NAME"; S: 4: "John", S: 3: 3- "အသက်" ၏ ဂုဏ်သတ္တိများ ။
ကြိုးနှင့်နံပါတ်များကဲ့သို့သောအချက်အလက်အမျိုးအစားများသည်သူတို့၏တန်ဖိုးများနှင့်အရှည်များကိုတိုက်ရိုက်သိမ်းဆည်းထားသည်။ ဥပမာအားဖြင့် String "Apple" ကို S: 5 ကိုခေါ်ယူလိမ့်မည်။
အဆိုပါ Serialize function ကိုကျယ်ပြန့်အသုံးပြုသည်။ အောက်ဖော်ပြပါအချက်များမှာအများသုံး application တစ်ခုမှာ -
စတိုးဆိုင်ရှုပ်ထွေးသောအချက်အလက်များ - ဥပမာ - PHP တွင် Array သို့မဟုတ် Object တစ်ခုကိုဆိုင်းငံ့ထားပြီးနောက်ဒေတာဘေ့စ်သို့မဟုတ်ဖိုင်သို့သိမ်းဆည်းထားသည်။ Serialize data များကိုအလွယ်တကူသိမ်းဆည်းရန်, သိုလှောင်ထားနိုင်သည်။
Cross-platform အချက်အလက်လွှဲပြောင်းမှု - ကွဲပြားခြားနားသောပလက်ဖောင်းများသို့မဟုတ် application များအကြားဒေတာများကိုလွှဲပြောင်းရန်လိုအပ်ပါက serialize သည် ရှုပ်ထွေးသောအချက်အလက်များကိုလွှဲပြောင်းနိုင်သောကြိုးများသို့ပြောင်းလဲရန်လွယ်ကူသောနည်းလမ်းတစ်ခုကိုပေးသည်။
cache data : ဥပမာအားဖြင့်တွက်ချက်မှုရလဒ်များကိုအချို့သောတွက်ချက်မှုရလဒ်များကို serialize လုပ်ပြီးနောက်ဆက်တွဲအသုံးပြုမှုအတွက် cache system ထဲတွင်သိမ်းထားပါ။
ဆိုင်းငံ့ထားသောအချက်အလက်များ၏ပြောင်းပြန်စစ်ဆင်ရေးသည် မအောင်မြင်ပါ ။ unserialize function ကိုမှတစ်ဆင့် serialized string ကိုမူလ PHP variable ကိုပြန်လည်ထူထောင်နိုင်သည်။
$serializedData = 'a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:6:"cherry";}';
$unserializedData = unserialize($serializedData);
print_r($unserializedData);
deserialization ၏ရလဒ်မှာမူရင်းခင်းကျင်းဖွဲ့စည်းပုံဖြစ်သည်။
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
လုံခြုံရေးပြ issues နာများ ။ အန္တရာယ်ရှိသော serialized ဒေတာထိုကဲ့သို့သောအရာဝတ်ထုဆေးထိုးတိုက်ခိုက်မှုများကဲ့သို့သောလုံခြုံရေးအားနည်းချက်များကို ဦး ဆောင်လမ်းပြပေးနိုင်သည်။
URL-Related လုပ်ဆောင်ချက်များ - Serialized Data တွင် URL များတွင်ပါ 0 င်ပါကလုံခြုံမှုနှင့်တိကျမှန်ကန်မှုကိုသေချာစေရန်မလုံခြုံသောအစိတ်အပိုင်းများကိုစစ်ဆေးရန်နှင့်အစားထိုးရန်သေချာပါစေ။ ပြင်ပလင့်များနှင့်ဆက်စပ်သောစစ်ဆင်ရေးအတွက် Gitbox.Net ကဲ့သို့သောယုံကြည်စိတ်ချရသောဒိုမိန်းအမည်များကိုအစားထိုးသင့်သည်။