PHP တွင် MB_Decode_NumericalENTICENTATITEST function ကို Numeric Endities function ကို transeric ent များကို transition chats ည့်သည်များအဖြစ်ပြောင်းလဲရန်အသုံးပြုသည်။ HTML အဖွဲ့အစည်းများပါဝင်သောစာသားကိုပြောင်းလဲခြင်းကဲ့သို့သော Multibyte ဇာတ်ကောင် encoding နှင့်ဆက်ဆံရာတွင်၎င်းသည်အလွန်အသုံးဝင်သည်။ ၎င်း၏အကွာအဝေးခင်းကျင်းမှုကိုမှန်ကန်စွာသတ်မှတ်ခြင်းသည်လုပ်ဆောင်ချက်သည်ကောင်းမွန်စွာအလုပ်လုပ်သည်ကိုသေချာစေရန်သော့ချက်ဖြစ်သည်။
string mb_decode_numericentity ( string $string , array $map , string $encoding = mb_internal_encoding() )
$ string : ပြောင်းလဲခံရဖို့ string ကို။
$ Map : အကွာအဝေးခင်းကျင်းခြင်း, ကူးပြောင်းခြင်းအကွာအဝေးကိုသတ်မှတ်ခြင်းနှင့်ကိန်းဂဏန်းအဖွဲ့အစည်းများ၏ offset ကိုသတ်မှတ်ခြင်း။
$ encoding : စာလုံး Encoding, Internal Encoding မှ default ။
အကွာအဝေးခင်းကျင်းသည်ရှုထောင့်တစ်ခုခင်းကျင်းမှုတစ်ခုဖြစ်ပြီး၎င်း၏အရှည်သည် 4 မျိုးရှိသည်။ 4 ဒြပ်စင်တစ်ခုစီသည်ပြောင်းလဲခြင်းအကွာအဝေးကိုကိုယ်စားပြုသည်။
[
start_codepoint, end_codepoint, offset, mask,
start_codepoint, end_codepoint, offset, mask,
...
]
start_codepoint : Unicode Code Point (Decimal) ကိုစတင်ပါ။
End_codePoint : Unicode Code Point (Decimal) ။
Offset : offset (များသောအားဖြင့် 0) သည်ကိန်းဂဏန်းအဖွဲ့အစည်း၏တန်ဖိုးကိုအသုံးပြုသည်။
မျက်နှာဖုံး - မျက်နှာဖုံး - အများအားဖြင့် 0xFFFFFFFFFFFFFF ။
မှတ်စု: MB_Decode_Numericality သည် ကိန်းဂဏန်း Entity Code အမှတ်များထဲမှအချက်များသည် start_codepoint ရိယာ ကိုအဆုံးသတ်ရန် start_codepoint အတွင်းတွင်ကျလိမ့်မည်။
Unicode Range သည်ကျွန်ုပ်တို့ပြောင်းလဲလိုသောကိန်းဂဏန်းအဖွဲ့အစည်းများမှဖုံးအုပ်ထားသည့်ယူနီကုဒ်အကွာအဝေးမှာ Basict Multitet Plane (BMP), i.e. မှ 0xFFFF မှ 0 ည့်သည်
$map = [
0x0, 0xFFFF, 0, 0xFFFF
];
ဒီမှာရှင်းပြချက်ပါ
Unicode Code Point အားလုံးအတွက် 0 မှ 65535 သို့ 0 မှ 65535 သို့ပြောင်းခြင်း။
Offset 0 ဆိုသည်မှာမူရင်းကိန်းဂဏန်း Entity Code Point ကိုချိန်ညှိခြင်းမရှိပါ။
မျက်နှာဖုံး 0xffff သည်ပြောင်းလဲခြင်းရလဒ်ကို 16-bit အကွာအဝေးအထိကန့်သတ်ထားကြောင်းသေချာစေရန်အသုံးပြုသည်။
<?php
// ပြောင်းလဲခံရဖို့ string ကို,ကိန်းဂဏန်းများပါ 0 င်သည်
$input = "Hello 你好!"; // “Hello မင်္ဂလာပါ!”
// ပြောင်းလဲခြင်းအကွာအဝေးခင်းကျင်းထားပါ,ပေြာင်းBMPအတိုင်းအတာ၏ entity
$map = [0x0, 0xFFFF, 0, 0xFFFF];
// အသုံးပြုmb_decode_numericentityပေြာင်း
$output = mb_decode_numericentity($input, $map, 'UTF-8');
echo $output; // ထုတ်လုပ်ခြင်း:Hello မင်္ဂလာပါ!
?>
အကွာအဝေးခင်းကျင်းသည် 4 မျိုးစုံဖြစ်ရမည် ။ မဟုတ်ရင် function ကိုမမှန်ကန်ပါလိမ့်မယ်။
Offset ကိုယေဘုယျအားဖြင့် 0 င်ရန်မလိုအပ်လျှင် 0 ကို 0 င်သည်။
Unicode Range ပေါ် မူတည်. မျက်နှာဖုံးသည် 0xFFFF (16 bit) သို့မဟုတ် 0xfffffff (32 bits) သို့မဟုတ် 0xfffff (32 bit)) ။
အကယ်. ကိန်းဂဏန်းအဖွဲ့အစည်းသည်အကွာအဝေးမရှိတော့ပါက function သည်၎င်းကိုပြောင်းလဲခြင်းမရှိပါ။
MB_Decode_NumeraleTice ၏အကွာအဝေးခင်းကျင်းမှုသည်မည်သည့်ကိန်းဂဏန်းများပြောင်းလဲခြင်းကိုဆုံးဖြတ်သည်။
ပစ်မှတ်ထားသောစာလုံးများကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာနိုင်ရန်အတွက်ကျိုးကြောင်းဆီလျော်သောစတင်သည့်ကုဒ်များနှင့်မျက်နှာဖုံးများကိုသတ်မှတ်ပါ။
BMP အကွာအဝေးဇာတ်ကောင်ပြောင်းလဲခြင်းကိုဖြည့်ဆည်းရန်သာမန်မြင်ကွင်းများကိုသတ်မှတ်ရန် [0x0, 0xffff, 0xfff]
Range Array settings ကိုကျွမ်းကျင်မှုပေါင်းစုံ encoded ဇာတ်ကောင်အဖွဲ့အစည်းများကိုပြောင်းလွယ်ပြင်လွယ်အမျိုးမျိုးကိုင်တွယ်ရန်,