HexDec သည် Hexadecimal Strings ကိုဒ decimal မကိန်းများထဲသို့ပြောင်းလဲရန် PHP built-in function တစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်:
<?php
echo hexdec('1a'); // ထုတ်လုပ်ခြင်း 26
?>
သို့သော် Hexdec သည် ကြိုးများ၌နံပါတ်များနှင့် hexadecimal အက္ခရာများကိုသာကိုင်တွယ်နိုင်ကြောင်းသတိပြုသင့်သည်။ အကယ်. input တွင် hexadecimal အက္ခရာများပါ 0 င်ပါက uuid တွင်အလျားလိုက်အလျားလိုက်လိုင်းများတိုတောင်းသောလိုင်းများ) ပါ 0 င ် ပါက string ကိုပထမ ဦး စွာသန့်ရှင်းရေးလုပ်ရမည်။
UUID သည်များသောအားဖြင့်ဖြစ်သည်။
550e8400-e29b-41d4-a716-446655440000
HexDec ကို အသုံးပြုလိုသည့်အခါကျွန်ုပ်တို့သည်အလယ်ပိုင်းတွင်တိုတောင်းသောအလျားလိုက်မျဉ်းကို ဦး စားပေးမည်။
<?php
$uuid = '550e8400-e29b-41d4-a716-446655440000';
$cleanUuid = str_replace('-', '', $uuid);
echo hexdec($cleanUuid);
?>
မှတ်ချက် - UUID သည် (Hexadecimal ဇာတ်ကောင် 32 ယောက်) သည်ပိုရှည်သောကြောင့် ဒ decimal မကိန်းသည် PHP Integer ၏အကွာအဝေးထက်ကျော်လွန်သွားနိုင်သည်။
PHP Integers သည် 64-bit စနစ်များတွင် 64-bit ရှည်လျားသောနံပါတ်များကိုထောက်ပံ့သည်။ 32 byte UUIDs များအတွက်သူတို့ကို hexdec နှင့်တိုက်ရိုက်ပြောင်းလဲမကြာခဏလျှံလိမ့်မည်။ ဖြေရှင်းချက် -
BC သင်္ချာသို့မဟုတ် GMP တိုးချဲ့မှုကိုသုံးပါ ဤ extensions များသည်မည်သည့်အရှည်မဆိုဒစ်ဂျစ်တယ်တွက်ချက်မှုများကိုထောက်ပံ့သည်။
<?php
$uuid = '550e8400-e29b-41d4-a716-446655440000';
$cleanUuid = str_replace('-', '', $uuid);
function bcHexDec($hex) {
$dec = '0';
$len = strlen($hex);
for ($i = 0; $i < $len; $i++) {
$current = hexdec($hex[$i]);
$dec = bcmul($dec, '16');
$dec = bcadd($dec, $current);
}
return $dec;
}
echo bcHexDec($cleanUuid);
?>
UUID ၏အချို့သောအကွက်များကိုသာပြောင်းလဲခြင်း ဥပမာအားဖြင့်, UUID ၏ပထမစာလုံး 8 လုံးကိုသာပြောင်းပါ။
<?php
$uuid = '550e8400-e29b-41d4-a716-446655440000';
$part = substr(str_replace('-', '', $uuid), 0, 8);
echo hexdec($part);
?>
၎င်းသည်သင့်အား indexing သို့မဟုတ်အမြန်နှိုင်းယှဉ်ရန်အတွက်သေးငယ်သည့်နံပါတ်ပေးသည်။
UUID တွင်အလျားလိုက်အလျားလိုက်လိုင်းများကို UUID တွင်သန့်ရှင်းစင်ကြယ်သော string သည် Hexdec သို့ဖြတ်သန်းသွားရန်အတွက် hex စာလုံးများပါ 0 င်သည်။
HexDec ကို အလွန်ရှည်လျားသော UUIDs များပြောင်းလဲရန်အတွက် BCMATH (သို့) GMP ကိုအသုံးပြုသောနံပါတ်များကိုအကောင်အထည်ဖော်ရန်အသုံးပြုရန်အကြံပြုသည်။
လိုအပ်ချက်များအရ UUID ၏အစိတ်အပိုင်းကိုပြောင်းလဲခြင်းနှင့်ကိန်းဂဏန်းအကွာအဝေးကိုလျှော့ချရန်။
ဒေတာဘေ့စ်အညွှန်းကိန်းဒီဇိုင်းနှင့်အတူပေါင်းစပ်ထားသော UUID ပြောင်းလဲထားသောတန်ဖိုးများကို sorting နှင့်လျင်မြန်စွာရှာဖွေရန်အသုံးပြုသည်။
သင်၏စီမံကိန်းတွင် UUID parameter သည် uuid parameter တစ်ခုရှိပါက၎င်းကိုဒစ်ဂျစ်တယ်ပြုပြင်ပြောင်းလဲမှုသို့အလျင်အမြန်ပြောင်းလိုပါက၎င်းကို PHP ၏ $ _GET နှင့်ပေါင်းစပ်နိုင်သည်။
<?php
if (isset($_GET['uuid'])) {
$uuid = $_GET['uuid'];
$cleanUuid = str_replace('-', '', $uuid);
echo hexdec(substr($cleanUuid, 0, 8)); // သာပြောင်းလဲခြင်းမတိုင်မီ8မြင်းဇက်ကြိုး
}
?>
ဥပမာ access:
https://gitbox.net/project/page.php?uuid=550e8400-e29b-41d4-a716-446655440000