လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_Decode_Numericalityity function ကိုဘယ်လိုမှန်မှန်ကန်ကန်သတ်မှတ်ရမလဲ

MB_Decode_Numericalityity function ကိုဘယ်လိုမှန်မှန်ကန်ကန်သတ်မှတ်ရမလဲ

gitbox 2025-05-29

PHP တွင် MB_Decode_NumericalENTICENTATITEST function ကို Numeric Endities function ကို transeric ent များကို transition chats ည့်သည်များအဖြစ်ပြောင်းလဲရန်အသုံးပြုသည်။ HTML အဖွဲ့အစည်းများပါဝင်သောစာသားကိုပြောင်းလဲခြင်းကဲ့သို့သော Multibyte ဇာတ်ကောင် encoding နှင့်ဆက်ဆံရာတွင်၎င်းသည်အလွန်အသုံးဝင်သည်။ ၎င်း၏အကွာအဝေးခင်းကျင်းမှုကိုမှန်ကန်စွာသတ်မှတ်ခြင်းသည်လုပ်ဆောင်ချက်သည်ကောင်းမွန်စွာအလုပ်လုပ်သည်ကိုသေချာစေရန်သော့ချက်ဖြစ်သည်။


1 ။ နိဒါန်း MB_Decode_NumericalENTICENTATION အတွက်နိဒါန်း

 string mb_decode_numericentity ( string $string , array $map , string $encoding = mb_internal_encoding() )
  • $ string : ပြောင်းလဲခံရဖို့ string ကို။

  • $ Map : အကွာအဝေးခင်းကျင်းခြင်း, ကူးပြောင်းခြင်းအကွာအဝေးကိုသတ်မှတ်ခြင်းနှင့်ကိန်းဂဏန်းအဖွဲ့အစည်းများ၏ offset ကိုသတ်မှတ်ခြင်း။

  • $ encoding : စာလုံး Encoding, Internal Encoding မှ default ။


2 ။ format နဲ့ format နဲ့ range array $ မြေပုံ

အကွာအဝေးခင်းကျင်းသည်ရှုထောင့်တစ်ခုခင်းကျင်းမှုတစ်ခုဖြစ်ပြီး၎င်း၏အရှည်သည် 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 အတွင်းတွင်ကျလိမ့်မည်။


3 ။ ဥပမာ - အကွာအဝေးခင်းကျင်းကိုမှန်ကန်စွာသတ်မှတ်ပါ

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 အကွာအဝေးအထိကန့်သတ်ထားကြောင်းသေချာစေရန်အသုံးပြုသည်။


4 ။ ပြီးပြည့်စုံသောကုဒ်ဥပမာ

 <?php
// ပြောင်းလဲခံရဖို့ string ကို,ကိန်းဂဏန်းများပါ 0 င်သည်
$input = "Hello &#20320;&#22909;!"; // “Hello မင်္ဂလာပါ!”

// ပြောင်းလဲခြင်းအကွာအဝေးခင်းကျင်းထားပါ,ပေြာင်းBMPအတိုင်းအတာ၏ entity
$map = [0x0, 0xFFFF, 0, 0xFFFF];

// အသုံးပြုmb_decode_numericentityပေြာင်း
$output = mb_decode_numericentity($input, $map, 'UTF-8');

echo $output;  // ထုတ်လုပ်ခြင်း:Hello မင်္ဂလာပါ!
?>

5 ။ မှတ်စုဖို့အရာ

  1. အကွာအဝေးခင်းကျင်းသည် 4 မျိုးစုံဖြစ်ရမည် ။ မဟုတ်ရင် function ကိုမမှန်ကန်ပါလိမ့်မယ်။

  2. Offset ကိုယေဘုယျအားဖြင့် 0 င်ရန်မလိုအပ်လျှင် 0 ကို 0 င်သည်။

  3. Unicode Range ပေါ် မူတည်. မျက်နှာဖုံးသည် 0xFFFF (16 bit) သို့မဟုတ် 0xfffffff (32 bits) သို့မဟုတ် 0xfffff (32 bit)) ။

  4. အကယ်. ကိန်းဂဏန်းအဖွဲ့အစည်းသည်အကွာအဝေးမရှိတော့ပါက function သည်၎င်းကိုပြောင်းလဲခြင်းမရှိပါ။


6 ။ အကျဉ်းချုပ်

  • MB_Decode_NumeraleTice ၏အကွာအဝေးခင်းကျင်းမှုသည်မည်သည့်ကိန်းဂဏန်းများပြောင်းလဲခြင်းကိုဆုံးဖြတ်သည်။

  • ပစ်မှတ်ထားသောစာလုံးများကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာနိုင်ရန်အတွက်ကျိုးကြောင်းဆီလျော်သောစတင်သည့်ကုဒ်များနှင့်မျက်နှာဖုံးများကိုသတ်မှတ်ပါ။

  • BMP အကွာအဝေးဇာတ်ကောင်ပြောင်းလဲခြင်းကိုဖြည့်ဆည်းရန်သာမန်မြင်ကွင်းများကိုသတ်မှတ်ရန် [0x0, 0xffff, 0xfff]

Range Array settings ကိုကျွမ်းကျင်မှုပေါင်းစုံ encoded ဇာတ်ကောင်အဖွဲ့အစည်းများကိုပြောင်းလွယ်ပြင်လွယ်အမျိုးမျိုးကိုင်တွယ်ရန်,