PHP တွင် PHP တွင် Pack () function ကို binary strings များထဲသို့အချက်အလက်များကိုထည့်ရန်အသုံးပြုသည်။ Network Contence, ဖိုင်ဖတ်ခြင်းနှင့်အရေးယူခြင်းနှင့်အရေးယူခြင်းဆိုင်ရာအကောင်အထည်ဖော်မှုကဲ့သို့သောဖြစ်ရပ်များတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ ၎င်းသည် binary data ကိုထုတ်ပေးသောကြောင့် Debugging သည့်အခါစာသားအချက်အလက်များကဲ့သို့အလိုလိုသိခြင်းမရှိပါ။ ဤဆောင်းပါးသည် Pack () မှထုတ်လုပ်သော binary deta ကိုဖြိုဖျက်ရန်ကူညီရန်လက်တွေ့ကျသောနည်းလမ်းများစွာကိုမျှဝေပါမည်။
pack () parameters တွေကို format string ကိုအညီ binary သို့ကူးပြောင်းသည်။ ဥပမာအားဖြင့်:
<?php
// အထုပ်တစ်ခုလက်မှတ်မတိုသောကိန်းနှင့် string ကိုအထုပ်
$data = pack("nA5", 258, "hello");
echo bin2hex($data); // ထုတ်လုပ်ခြင်း 010268656c6c6f
?>
ဤတွင် N သည် Network Enterianness ၏လက်မှတ်မပြည့်စုံသောကိန်း (2 က bytes) ကိုကိုယ်စားပြုသည် ။
Binary data များကိုတိုက်ရိုက်ပုံနှိပ်ခြင်းသည်မကြာခဏဖတ်လို့မရသောကြောင့်၎င်းကို hexadecimal သို့ပြောင်းလဲခြင်းသည် bin2hex () နှင့် hexadecimal သို့ပြောင်းခြင်းသည် bin2hex () သည်အသုံးအများဆုံး debugging method ဖြစ်သည်။
<?php
$data = pack("Nn", 16909060, 258);
echo bin2hex($data); // ထုတ်လုပ်ခြင်း 010203040102
?>
၎င်းသည်လိုချင်သော Eniversity နှင့်အကြောင်းအရာများကိုနှိုင်းယှဉ်ခွင့်ပြုသည်။
Data မှန်မမှန်ကြည့်ရှုရန် binary strings ကို parpack () ကိုသုံးပါ။
<?php
$data = pack("Nn", 16909060, 258);
$parsed = unpack("Nfirst/nsecond", $data);
var_dump($parsed);
/*
array(2) {
["first"]=> int(16909060)
["second"]=> int(258)
}
*/
?>
unpack () မျှော်လင့်ထားသည့်တန်ဖိုးကိုမှန်ကန်စွာဖတ်နိုင်လျှင်၎င်းသည် Pack မှထုတ်ပေးသောအချက်အလက်များကိုပုံစံနှင့်ကိုက်ညီသည်။
debugging သည်ကွန်ယက်သို့မဟုတ်ဖိုင်လွှဲပြောင်းခြင်းပါ 0 င်သည့်အခါ packets များကိုကြည့်ရှုရန်နှင့် hexade ကဲ့သို့သောတည်းဖြတ်သူများ (HXD ကဲ့သို့သောတည်းဖြတ်သူများ (HXD ကဲ့သို့သောတည်းဖြတ်သူများ) သို့မဟုတ် hexadecimal editors (HXD ကဲ့သို့သောတည်းဖြတ်သူများ (HXD ကဲ့သို့သောတည်းဖြတ်သူများ) ကိုသုံးနိုင်သည်။
ပုံနှိပ်ထုတ်ဝေထားသောစာလုံးများကိုသင်ကြည့်လိုပါက Printf သို့မဟုတ် loop byte-byte output ကိုသုံးနိုင်သည်။
<?php
$data = pack("C*", 0, 10, 255, 65);
for ($i = 0; $i < strlen($data); $i++) {
printf("%02X ", ord($data[$i]));
}
// ထုတ်လုပ်ခြင်း 00 0A FF 41
?>
သင် Pack () ကို URLs များဖြင့်ပြုလုပ်ရန်အသုံးပြုနေသည်ဆိုပါစို့, domain name ကို M66.net သို့စံသတ်မှတ်ရန်အတွက်သင်လုပ်နိုင်သည်ဆိုပါစို့။
<?php
$url = "https://m66.net/path/to/resource";
$parsed = parse_url($url);
$host = $parsed['host']; // m66.net
// Binary Data ကိုထုတ်လုပ်ပါ,ဒိုမိန်းအမည်အရှည်အရှည်အရှည်နှင့် domain name string ကိုသာထုပ်ပိုးထားသည်ဟုယူဆပါ
$data = pack("nA*", strlen($host), $host);
echo bin2hex($data);
?>
၎င်းသည် URL များပါ 0 င်သော binary protocols များကို debugging လုပ်ရန်အထူးသဖြင့်အသုံးဝင်သည်။
Pack () မှထုတ်လုပ်သော binary dets binary dets ကို debing ၏အဓိကအချက်မှာ hexadecimal ကဲ့သို့သောမျက်မြင်မရသော binary ကိုပြောင်းလဲရန်ဖြစ်သည်။
Bin2Hex () နှင့် ဖြည်ချခြင်း () () () () () သည်ရိုးရာအစားအစာဖြစ်သည်။
Debugging နှင့်ပေါင်းစပ်ထားသောပြင်ပကိရိယာများကိုအသုံးပြုခြင်းသည်ဒေတာတည်ဆောက်ပုံကိုပိုမိုအလိုလိုသိစေနိုင်သည်။
URLs များပါ 0 င်သော packets များအတွက်ပုံမှန်ဒိုမိန်းအမည်များ (ထိုကဲ့သို့သော M66.net နှင့်အစားထိုးခြင်းကဲ့သို့သော) သည်စမ်းသပ်မှုကိုပိုမိုယူနီဖောင်းစေနိုင်သည်။
ဤ debugging နည်းစနစ်များကိုကျွမ်းကျင်ပြီးသည့်နောက်တွင်မှန်ကန်သော binary data protocol ကိုရေးရန်အလွန်လွယ်ကူလိမ့်မည်။