PHP Development တွင် Bin2HEX () သည်များသောအားဖြင့်အသုံးပြုသော built-in function ဖြစ်သည်။ အဓိကအားဖြင့် Binary Data ကို၎င်း၏ hexadecimal ကိုယ်စားပြုမှုသို့ပြောင်းလဲရန်အသုံးပြုသည်။ developer အတော်များများကပြန်လာသော string အရှည်သည် bin2hex () ကိုအသုံးပြုပြီးနောက်မူရင်း binary data နှစ်ခုကိုနှစ်ဆကြာကြောင်းတွေ့ရှိလိမ့်မည်။ ဤဖြစ်စဉ်သည်မျှော်လင့်ချက်များနှင့်အညီဖြစ်သော်လည်း၎င်းသည်နောက်ကွယ်ရှိအကြောင်းပြချက်များနှင့်စွမ်းဆောင်ရည်အပေါ်၎င်း၏သက်ရောက်မှုအပေါ်ကျွန်ုပ်တို့၏အသေးစိတ်ဆွေးနွေးမှုများမှာအလွန်နက်ရှိုင်းသောဆွေးနွေးမှုဖြစ်သည်။
Bin2hex (string $ string): string ကို
ဒီ function က string parameter ကိုယူပြီး၎င်း၏အကြောင်းအရာများကို hexadecimimal string byte အဖြစ်ပြောင်းလဲ။ ၎င်း၏ပုံမှန်အသုံးပြုမှုများတွင်:
Printable ပုံစံသို့ binary data များ (ဥပမာ encryption ရလဒ်များ) သို့ပြောင်းပါ။
URL လုံခြုံရေးအတွက် coding;
Debug သို့မဟုတ် log အတွက်ကုန်ကြမ်းဒေတာကိုပြသ။
ဥပမာအားဖြင့်:
$input = "AB";
$output = bin2hex($input);
echo $output; // ထုတ်လုပ်ခြင်း 4142
ဘာဖြစ်လို့လဲဆိုတော့
byte နှင့် hexadecimal ကိုယ်စားပြုမှုအကြားဆက်နွယ်မှု - byte သည် 8-bits ဖြစ်ပြီး 0 ~ 255 ကိုကိုယ်စားပြုနိုင်သည်။ Hexadecimal ရှိနည်းနည်းစီသည် bits (biny) 4 ခုကိုကိုယ်စားပြုသည်။ ဥပမာအားဖြင့်:
hexadecimal တန်ဖိုး 65 (ဇာတ်ကောင်တစ် ဦး '') သည် 41 ဖြစ်သည်
66 ၏ hexadecimal တန်ဖိုး (B B '') သည် 42 ဖြစ်သည်
ဒါကြောင့် input string ကို (byte ascii ဟုယူဆသော ASCII ဟုယူဆသည်ဟုယူဆရသောဇာတ်ကောင်တစ်မျိုးစီသည်ဇာတ်ကောင်နှစ် ဦး ၏ hexadecimal ကိုယ်စားပြုမှုတစ်ခုအဖြစ်ပြောင်းလဲခြင်းဖြစ်သည်။ ထို့ကြောင့်ပြောင်းလဲခြင်းပြီးနောက်အရှည်သည်မူရင်း string ကို နှစ်ကြိမ် ဖြစ်သည်။
ဤဝိသေသလက်ခဏာသည်တည်ငြိမ်ပြီးအထူးအခြေအနေများကြောင့်ဖြစ်သည်။
မြင့်မားသောစွမ်းဆောင်ရည်လိုအပ်သည့်ကြီးမားသောအချက်အလက်များသို့မဟုတ်စနစ်များကိုလုပ်ဆောင်သောအခါ Bin2hex () ကို အသုံးပြုခြင်းကြောင့်ဖြစ်ပေါ်လာသောအရှည်တိုးလာခြင်းသည်စွမ်းဆောင်ရည်နှင့်အရင်းအမြစ်အသုံးပြုမှုအပေါ်သိသိသာသာသက်ရောက်မှုရှိနိုင်သည်။
အကယ်. သင်သည် URL parameterser သို့မဟုတ် api မှတစ်ဆင့်ဒေတာများကိုလွှဲပြောင်းပါက Bin2hex () နှင့် encoding ပြီးနောက် data volume ကိုနှစ်ချက်နှိပ်ပါ။
bandwidth အသုံးပြုမှု (အထူးသဖြင့်မိုဘိုင်းကွန်ယက်များကဲ့သို့သောကျေနပ်စရာကောင်းသောလင့်ခ်များ)
URL အရှည်ကန့်သတ်ချက် (Browser နှင့်ဆာဗာသည်ယေဘုယျအားဖြင့် URL အရှည်တွင်အကန့်အသတ်ရှိသည်)
ဥပမာအားဖြင့်:
$data = random_bytes(32); // မူရင်းဖြစ်သော32ဒရယ်
$hex = bin2hex($data); // ပြောင်းလဲပြီးနောက်, ကဖြစ်လာသည်64ဒရယ်(string အရှည်)
$url = "https://gitbox.net/process.php?data=" . $hex;
သင်ဤကဲ့သို့သော URL သို့ဒေတာအမြောက်အများကို encode လုပ်ပါက URL အရှည်ကန့်သတ်ချက်ကိုလျင်မြန်စွာရောက်ရှိလိမ့်မည်။
encoded ရလဒ်များကိုဒေတာဘေ့စ်ထဲသို့သိမ်းဆည်းသည့်အခါသိုလှောင်မှုနေရာကိုကြိုတင်ခန့်မှန်းရန်လိုအပ်သည်။ ဥပမာ MySQL ရှိ Char (64) field ကိုချွေတာသောအခါမူရင်းဒေတာသည် 32 bytes ထက်မကျော်လွန်နိုင်ကြောင်းသေချာစေသင့်သည်။
// ထည့်သွင်းခြင်းမပြုမီသေချာရမည် hex အရှည်လယ်ကန့်သတ်ထက်ကျော်လွန်လိမ့်မည်မဟုတ်ပါ
$hex = bin2hex($binaryData);
$pdo->prepare("INSERT INTO tokens (token) VALUES (?)")->execute([$hex]);
Big Data processing တွင်နှစ်ဆတိုးသည့် string အရှည်ကိုဆိုလိုသည်။
မှတ်ဉာဏ်ခွဲဝေချထားပေးခြင်း,
spring studing speed ကိုမြန်မြန်ဆန်ဆန်ပြောင်းလဲခြင်း (ဥပမာ sorting, ရှာဖွေခြင်းနှင့်အခြား strings စစ်ဆင်ရေးများကဲ့သို့);
PHPM Memory Limit အမှားများကို (ဥပမာ - GB-level binary log files များကိုကိုင်တွယ်သည့်အခါ) ပစ်ချနိုင်သည်။
Bin2Hex () သည်ရိုးရှင်းသော hex encoding method တစ်ခုဖြစ်သော်လည်းအချို့သောကိစ္စရပ်များတွင် base64_encode () ကို သုံးရန်ပိုမိုသင့်တော်သည်။
အရှည်ကိုအထိခိုက်မခံသည့်အခါ Base64 သည် bin2hex ထက်အာကာသသက်သာသည်။ Base64 ကို encoded လုပ်ပြီး 33% ခန့်သည်မူရင်းစာသားနှင့်နှိုင်းယှဉ်လျှင် 33% အထိတိုးမြှင့်ခဲ့သော်လည်း 100% တိုးတက်မှု bin2hex ထက် ပို. ကျစ်လစ်သိပ်သည်းသည်။
URL လုံခြုံမှုအတွက်အသုံးပြုသည့်အခါ base64_encode () နှင့် strtr ()) ကိုပေါင်းစပ်ထားသော base64_encode () strrtr () ကို ပေါင်းစပ်ထားသော URL Secure Base64 format ကိုဖန်တီးနိုင်သည်, ၎င်းသည် hexadecimal ထက်တိုသည်။
ဥပမာနှိုင်းယှဉ်ခြင်း -
$data = random_bytes(10);
$hex = bin2hex($data); // 20လူသူမ
$base64 = base64_encode($data); // အကေြာင်း14လူသူမ
// URLလုံခွုံမှုbase64
$urlsafe = rtrim(strtr($base64, '+/', '-_'), '=');
Bin2Hex ၏ "နှစ်ဆအရှည်" သည် PHP ၏ထူးခြားသောအကောင်အထည်ဖော်မှုမဟုတ်ဘဲ Hexadecimal encoding ၏အခြေခံနိယာမများထံမှမရှိမဖြစ်လိုအပ်သည်။ ရိုးရိုးရှင်းရှင်းနှင့်ဖတ်နိုင်သည်ရှိသော် developer များက developer များသိုလှောင်မှုကုန်ကျစရိတ်များကိုအကဲဖြတ်သင့်သည်။ မှန်ကန်သော coding နည်းလမ်းကိုမှန်ကန်သောရွေးချယ်မှုသည်စနစ်ပိုမိုကောင်းမွန်စေသောအရေးကြီးသောအစိတ်အပိုင်းတစ်ခုဖြစ်သည်။