PHP တွင် PHP တွင် Pack () function ကို binary string များထဲသို့အချက်အလက်များကိုထည့်ရန်အသုံးပြုသည်။ ၎င်းကို network programming, file operations နှင့်အပြန်အလှန်ဆက်သွယ်မှုအတွက်အသုံးပြုလေ့ရှိသည်။ အထုပ် () function ကို () function ကို format string ကိုအတွက်, တစ် ဦး နှင့် တစ် ဦး သည် များသောအားဖြင့်အသုံးပြုသော format codes နှစ်ခုဖြစ်သည်။ သူတို့ကအရမ်းဆင်တူပေမယ့်တကယ်တော့သိမ်မွေ့ကွဲပြားမှုရှိသည်။ ဤဆောင်းပါးသည် တစ် ဦး နှင့် တစ် ဦး အသေးစိတ်အကြားခြားနားချက်ကိုရှင်းပြပြီးဥပမာအားဖြင့်သူတို့၏လက်တွေ့အသုံးစုံကိုပြသသည်။
အထုပ် ၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string pack(string $format, mixed $values, mixed ...$values)
သတ်မှတ်ထားသောပုံစံအရ, နောက်ဆက်တွဲ parameters များကို binary strings များအဖြစ်ပြောင်းလဲခြင်း။ ပုံစံကြိုးများသည်ပုံစံအမျိုးမျိုးရှိသော codes များစွာပါ 0 င်နိုင်သည်။
A : Nul Byte ဖြည့်တင်းကြိုး (အလွတ်သည်သတ်မှတ်ထားသောအရှည်သို့ဖြည့ ် . ,
A : နေရာများနှင့်ပြည့်စုံသည့် string (နေရာများသည်သတ်မှတ်ထားသောအရှည်နှင့်ပြည့်နှက်နေသည်။
အောက်တွင်ဖော်ပြထားသည်မှာ တစ် ဦး နှင့် အေ အကြားခြားနားချက်ကိုရှင်းပြရန်အာရုံစိုက်သည်။
ဇာတ်ကောင် format | ဖြည့်စွက်နည်းလမ်း | အပြုအမူကို truncate | ဘုံအခြေအနေများ |
---|---|---|---|
တစ်စီး | nul ( \ 0 ) ဖြည့်ပါ | သတ်မှတ်ထားသောအရှည်မှရှည်လျားသော string ကို truncated | ကုန်ကြမ်းဒေတာသိုလှောင်ရန် fixed-length string ကိုလိုအပ်ပါတယ် |
တစ်စီး | အာကာသ ( ) ဖြည့်စွက် | သတ်မှတ်ထားသောအရှည်မှရှည်လျားသော string ကို truncated | စာဖတ်နိုင်မှုကိုစောင့်ရှောက်ခြင်း, စာသား strings များအတွက်သင့်လျော်သော |
ရိုးရိုးလေးပြောရလျှင်ထုပ်ပိုးခြင်းအတွက်အသုံးပြုသော string သည် "\ 0" ကို အရှည်ကိုပြုလုပ်ရန် "" အရှည် "ကိုသုံးရန် " "အရှည် " ကိုသုံးရန် " \ t" ကိုအသုံးပြုလိမ့်မည်။
<?php
// အသုံးပြုaဇာတ်ကောင် format,strings များအတွက်NULbytes ပြီးစီး
$str_a = pack("a10", "hello");
echo "အသုံးပြုaဇာတ်ကောင် format打包结果:" . bin2hex($str_a) . "\n";
// အသုံးပြုAဇာတ်ကောင် format,strings များအတွက်空格补齐
$str_A = pack("A10", "hello");
echo "အသုံးပြုAဇာတ်ကောင် format打包结果:" . bin2hex($str_A) . "\n";
// အကျိုးသက်ရောက်မှုကိုစောင့်ကြည့်ဖို့ဖြည်
echo "aဇာတ်ကောင် format解包:" . unpack("a10str", $str_a)['str'] . "\n";
echo "Aဇာတ်ကောင် format解包:" . unpack("A10str", $str_A)['str'] . "\n";
?>
အသုံးပြုaဇာတ်ကောင် format打包结果:68656c6c6f0000000000
အသုံးပြုAဇာတ်ကောင် format打包结果:68656c6c6f2020202020
aဇာတ်ကောင် format解包:hello
Aဇာတ်ကောင် format解包:hello
68656C6C6F "Hello" string ၏ ASCII ကုဒ်နှင့်ကိုက်ညီသည်။
A အတွက်အပို bytes ကို \ 0 (00) နှင့်ပြည့်နှက်နေသည်။
A အတွက်အပို bytes များသည်နေရာများနှင့်ပြည့်နှက်နေသည် (20) ။
ဆိုလိုသည်မှာနောက်ဆက်တွဲအပြောင်းအလဲတင်ခြင်းသည်အမြီးကိုကွက်လပ်များသို့အထိခိုက်မခံပါကသင့်လျော်သောပုံစံများကိုရွေးချယ်ရန်အရေးကြီးသည်။
C ဘာသာစကားကဲ့သို့နောက်ခံ interfaces များနှင့်အပြန်အလှန်ဆက်သွယ်ရန်လိုအပ်သည့်အခါ C ဘာသာစကား strings သည် တစ်မျိုး ဖြင့်အဆုံးသတ်သောကြောင့်,
အကယ်. သင်သည်သတ်မှတ်ထားသောအရှည်၏စာသားအချက်အလက်များကိုလွှဲပြောင်းရန်နှင့်နေရာများ၏မြင်ကွင်းကိုဆက်လက်ထိန်းသိမ်းထားရန်လိုအပ်ပါက A. အသုံးပြုရန်ပိုမိုသင့်လျော်ပါလိမ့်မည်။