Network Programming တွင်ဒေတာအမိန့်သည်အလွန်အရေးကြီးသောအယူအဆတစ်ခုဖြစ်သည်။ ကွဲပြားခြားနားသောကွန်ပျူတာဗိသုကာပညာရှင်များသည်မတူကွဲပြားသော endian endian အမိန့်များကိုကျင့်သုံးနိုင်သည်။ ကွန်ယက် protocols များသည်များသောအားဖြင့်အချက်အလက်များကိုပို့သည့်အခါဒေတာများကိုကြီးမားသော endianness format နဲ့ပြောင်းဖို့လိုအပ်တယ်။
PHP တွင် POST () function သည်အချက်အလက်များကိုသတ်မှတ်ထားသောပုံစံဖြင့်ထည့်ရန်အဆင်ပြေသောနည်းလမ်းဖြစ်သည်။ ကိန်းဂဏန်းများကို Enterian (Big-endian) format ကိုပြောင်းလဲရန် Pack ("N") function ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးကရှင်းပြပါမည်။
POSP () PHP တွင်ဒေတာများကိုသတ်မှတ်ထားသောပုံစံဖြင့် Binary ကြိုးများသို့ပြောင်းလဲစေသည့် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ၎င်းသည်ကိန်းဂဏန်းများ, floating point, string string အပါအ 0 င်ပုံစံအမျိုးမျိုးကိုထောက်ပံ့သည်။
function ရှေ့ပြေးပုံစံ:
string pack(string $format, mixed $values, mixed ...$values2);
$ format - format string, အချက်အလက်အမျိုးအစားနှင့်အမိန့်ကိုသတ်မှတ်ပါ။
$ တန်ဖိုးများ - ထုပ်ပိုးဖို့လိုအပ်တဲ့တန်ဖိုး။
Pack of Pack (NER) ၏ပုံစံ ( ) "" ဆိုသည်မှာ 16-bit unsigned integer ကို network endianness (Big-Endianness) တွင်ထုပ်ပိုးထားသည်။
N : 16-bit unsigned big-endian ကိုကျင့်သုံးခြင်း,
ဆန့်ကျင်ဘက်အနေဖြင့် V ကို အနေဖြင့် V မှ 16-bit လက်မှတ်မထိုးထားသောတိုတောင်းသောကိန်းသည်သေးငယ်သည့် byte အမိန့် (နည်းနည်း Endian-ender) ကိုချမှတ်ကြောင်းကိုလည်းညွှန်ပြနေသည်။
နံပါတ် 0x1234 ကို 0x1234 ကိုကွန်ယက် byte အမိန့်တွင် binary string တစ်ခုထဲသို့ 0 င်ရောက်လိုပါက၎င်းကိုသင်ဤကဲ့သို့ရေးနိုင်သည်ဆိုပါစို့။
<?php
$number = 0x1234;
$packed = pack("n", $number);
echo bin2hex($packed); // ထုတ်လုပ်ခြင်း:1234
?>
ဤနေရာတွင် Pack ("N", $ နံပါတ်) သည် နံပါတ် 0x1234 ကို 0x1234 ကို 0x12 နှင့် 0x34 ကို byte အမိန့်ဖြင့် binary string ကိုပြောင်းလဲပေးသည်။
Pack ("v", $ နံပါတ်ကို သုံးပါက output သည် endian byte အမိန့်အနည်းငယ်သာဖြစ်သည်။
<?php
$number = 0x1234;
$packed = pack("v", $number);
echo bin2hex($packed); // ထုတ်လုပ်ခြင်း:3412
?>
Network protocols များတွင် Port နံပါတ်နှင့်အရှည်ကဲ့သို့သော 16-bit နံပါတ်များကို Network byte အမိန့်တွင်ပို့ရန်မကြာခဏလိုအပ်လေ့ရှိသည်။ ဥပမာအားဖြင့် Custom Network Package ကိုတည်ဆောက်ပါ။
<?php
// port နံပါတ် 8080 (0x1F90)
$port = 8080;
// 打包port နံပါတ်为网络字节序
$packedPort = pack("n", $port);
// ဒေတာပေးပို့သည့်အခါအသုံးပြုပါ $packedPort ဒါဟာမှန်ကန်သော endianness သေချာစေနိုင်ပါတယ်
?>
သင်၏ကုဒ်အတွင်းရှိ URL ကိုအသုံးပြုရန်လိုအပ်ပါက M66.net ဖြင့် domain name ကိုအစားထိုးရန်လိုအပ်သည်။
<?php
$url = "https://m66.net/path/to/resource";
echo "Access address: " . $url;
?>
အမှန်တကယ် applications များရှိသင်လိုအပ်သောဒိုမိန်းအမည်ကိုသင်ပြောင်းသင့်သည်။
စုစုပေါင်း Pack ("N") သည် PHP တွင် 16-by-endian-endian-endian (Big-endian) နှင့်ချိတ်ဆက်ရန်အများအားဖြင့်တိုက်ရိုက်နှင့်ထိရောက်သောနည်းလမ်းဖြစ်သည်။