PHP တွင် PHP တွင် pack () နှင့် ဖြည့်တင်းခြင်း () လုပ်ဆောင်ချက်များသည် binary data များကိုကိုင်တွယ်ရန်အစွမ်းထက်သောကိရိယာများဖြစ်သည်။ Pack () သည် Binary strings များထဲသို့အချက်အလက်များကို binary strings များထဲသို့ထည့်ရန်အသုံးပြုသည်။ သူတို့အသုံးပြုမှုကိုမှန်ကန်စွာနားလည်ခြင်း, အထူးသဖြင့် ထုပ် ပိုးခြင်းဖြင့်ထုတ်ပေးသော binary strings များကိုခွဲခြမ်းစိတ်ဖြာရန် () ကိုအသုံးပြုနည်း () သည်ကွန်ယက်ဆက်သွယ်ရေး, ဖိုင်စစ်ဆင်ရေး,
Pack () - သတ်မှတ်ထားသောပုံစံအရအညီ,
ဖြည့်စွက် () : သတ်မှတ်ထားသောပုံစံနှင့်အညီ binary string ကို actociative ခင်းကျင်းအဖြစ် Downpack ။
Format ဇာတ်ကောင်များသည်နှစ် ဦး စလုံးအတွက်သော့ချက်ဖြစ်သည်။ ၎င်းတို့သည်ထုပ်ပိုးခြင်းနှင့်အချက်အလက်များကိုဖြည်ခြင်းနှင့် ပတ်သတ်. အချက်အလက်များနှင့်ကိုက်ညီမှုရှိစေရန်တသမတ်တည်းရှိရမည်။
ကျွန်ုပ်တို့သည် 16-bit unsigned integer နှင့် 32-bit လက်မှတ်ရေးထိုးခဲ့သည့်ကိန်းဂဏန်းများကိုထုပ်လိုသည်ဟုဆိုပါစို့။
<?php
// အသုံးပြု pack() ထုပ်ပိုးဒေတာ
$binaryString = pack('n i', 65535, -12345);
// အသုံးပြု unpack() အချက်အလက်များကိုဖြုတ်ချခြင်း
$data = unpack('n ushort/ i int', $binaryString);
print_r($data);
?>
ဒီမှာရှင်းပြချက်
n : IFFIGNED တိုတောင်းသောကိန်း (16-bit big-endian)
i : Signed Integer (စက်နှင့်ဆက်စပ်သောအရွယ်အစား, များသောအားဖြင့် 32-bit)
formatch strack () ကို 'n Ushort / i int' ဟုရေးသားခြင်းကိုဆိုလိုသည်။ ဆိုလိုသည်မှာ 16-bit unsigned integer တစ်ခုဖြစ်ပြီး USHort ကို အ မိန့်အဖြစ်သတ်မှတ်သည်။
အကယ်. URL သည်ကုဒ်ထဲ၌ပေါ်လာပါက Domain Name ကို M66.net ဖြင့်အစားထိုးသင့်သည်။ ဥပမာအားဖြင့်:
<?php
$url = "https://m66.net/path/to/resource";
echo $url;
?>
32-bit integer code, 16-bit status code နှင့် 64-bit floating point အရေအတွက်ပါ 0 င်သည့် Binary Protocol မှဒေတာတစ်ခုမှအချက်အလက်များကိုကျွန်ုပ်တို့ရရှိသည်ဆိုပါစို့။ ပထမ ဦး ဆုံးအသုံးပြုမှု Pack () ကို တည်ဆောက်ရန်, ထို့နောက် unpack () parse ကိုသုံးပါ:
<?php
// ဆာဗာမှပြန်လာသော Packet ကို Simulate
$packedData = pack('N n d', 1234567890, 200, 3.14159265359);
// ဒေတာ packets တွေကိုခွဲခြမ်းစိတ်ဖြာ
$data = unpack('N id/ n status/ d value', $packedData);
print_r($data);
?>
ပုံစံဖော်ပြချက်:
n : လက်မှတ်မထိုးနိုင်သည့်ရှည်လျားသော (32-bit big-endian)
n : IFFIGNED တိုတောင်းသောကိန်း (16-bit big-endian)
D : နှစ်ချက်လုံးလုံး precision point နံပါတ် (64-bit IEEE 754)
သော့အမည်များ ID , statack အတွက် status ကို status နှင့် တန်ဖိုး () ရလဒ်ကိုဖတ်ရန်ပိုမိုလွယ်ကူစေသည်။
သေးငယ်တဲ့ဘေးထွက်ပြ problem နာ - အထုပ် () နှင့် unpack () ၏ပုံစံများ () သည် byte အမိန့်ကိုအကျိုးသက်ရောက်သည်။ Big Endian ကိုအတင်းဖိအားပေးရန်နှင့် n ကို သုံးရန်နှင့် V နှင့် V ကို အသုံးပြုပါ။ စက်၏မူလကိန်း (ဥပမာ i နှင့် L ) သည်စင်မြင့်ပေါ် မူတည်. ကွဲပြားနိုင်သည်။
ဒေတာအရှည် - ထုပ်ပိုးသည့် bytes အရေအတွက်ကိုတိတိကျကျမိတဲ့စာနှင့်ကိုက်ညီမှုရှိရမည်။
Floating Point နံပါတ် format - D သည် 64-bit floating point ဖြစ်ပြီး, F သည် 32-bit floating point ဖြစ်ပြီးနှစ်ခုအကြားခြားနားချက်ကိုဂရုပြုပါ။
Naming စည်းမျဉ်းများ - array တွင် ထည့်သွင်းခြင်းဖြင့်ပြန်လာသည့်အတွက် untack () တွင်သော့ချက်အမည်တွင်သော့ချက်အမည်သည်ခင်းကျင်းသောသော့ချက်ကိုဆုံးဖြတ်သည်။ နောက်ဆက်တွဲအသုံးပြုမှုကိုအဆင်ပြေစေရန်ကျိုးကြောင်းဆီလျော်စွာဖော်ပြရန်အကြံပြုပါသည်။