MB_Decode_NumeraleNentity function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
mb_decode_numericentity(string $str, array $map, string $encoding): string|false
$ str : string ကိုခွဲခြမ်းစိတ်ဖြာခြင်းသည်များသောအားဖြင့် numeric entity ပါ 0 င်သည့် HTML သို့မဟုတ် XML-encoded string ကိုဖြစ်သည်။
$ Map : activative ခင်းကျင်းကိန်းဂဏန်းများကိုမြေပုံရေးဆွဲခြင်းကိုသတ်မှတ်ပေးသော activative ခင်းကျင်းသည်။
$ encoding - ယေဘုယျအားဖြင့် UTF-8 ။
အသုံးအများဆုံးသုံးစွဲမှုမြင်ကွင်းသည်ဝက်ဘ်စာမျက်နှာတစ်ခုမှဝက်ဘ်စာမျက်နှာတစ်ခုမှဝက်ဘ်စာမျက်နှာမှဝက်ဘ်စာမျက်နှာ ( "中" ကဲ့သို့သော "中" ကဲ့သို့သော HTML ဇာတ်ကောင်များ ("中") မှလွတ်မြောက်ရန် HTML ဇာတ်ကောင်များအဖြစ်ပြောင်းလဲရန်ဖြစ်သည်။ ဥပမာအားဖြင့်:
$input = "中文";
$output = mb_decode_numericentity($input, array(0x80, 0xFFFF), 'UTF-8');
echo $output; // ထုတ်လုပ်ခြင်း “တရုတ်”
ဤလုပ်ဆောင်မှုသည် ကြားနေ စာသားကို "အလယ်အလတ်" နှင့် "စာသား" သို့စာသားများကိုပြောင်းလဲပေးသည်။
MB_Decode_Numericality ကို အသုံးပြုသောအခါအလွယ်ကူဆုံးပြ problems နာတစ်ခုမှာဇာတ်ကောင် encoding mismatch ဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်ဖြတ်သန်းသွားသော string သည် encoding parameter သည်နှင့်ကိုက်ညီရန်လိုအပ်သည်။ သင်ရိုက်ထည့်လိုက်သော string သည် encoding encoding ကဲ့သို့ UTF-8 တွင်ဖြတ်သန်းသွားလျှင်၎င်းသည် parsing ရလဒ်ကိုမမှန်ကန်ကြောင်းဖြစ်ပေါ်စေနိုင်သည် ။
အဆိုပါဖြတ်သန်း string ကို $ encoding parameter သည်၏ enameter သည်နှင့်ကိုက်ညီကြောင်းသေချာပါစေ။ သင်၏ string သည် gbk encoded ဖြစ်လျှင်၎င်းကိုဤကဲ့သို့သောဟုခေါ်သည်။
$output = mb_decode_numericentity($input, array(0x80, 0xFFFF), 'GBK');
ထို့အပြင်ပြောင်းလဲမှုကို encoding မတိုင်မီအက်ခရာ encoding ကိုစစ်ဆေးရန်နှင့်ပေါင်းစည်းရန်အကောင်းဆုံးဖြစ်သည်။
မြေပုံ parameter သည်ဒစ်ဂျစ်တယ် entity မြေပုံ၏အကွာအဝေးကိုသတ်မှတ်သည်။ အကယ်. သင်သည်မှန်ကန်သော HTML Numeric ဇာတ်ကောင်အဖွဲ့များကိုသက်ဆိုင်ရာဇာတ်ကောင်များသို့ပြန်ပြောင်းလိုပါက မြေပုံ parameters များကိုဂရုတစိုက်သတ်မှတ်ရန်လိုအပ်သည်။ အကယ်. အကွာအဝေးအစုံသည်သေးငယ်လွန်းပါကအချို့သောအက္ခရာများကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာမည်မဟုတ်ပါ။
ဥပမာအားဖြင့်, အကယ်. သင်သည် ခင်းကျင်းခြင်း (0x80, 0xFFFFFFFFFFF) ကို သာသတ်မှတ်ပါကဤနယ်မြေရှိစာလုံးများကိုသာခွဲထုတ်လိမ့်မည်။ သင်ပိုမိုကျယ်ပြန့်သောအက္ခရာများကိုခွဲခြမ်းစိတ်ဖြာလိုပါကဤအကွာအဝေးကိုညှိရန်လိုအပ်သည်။
ယေဘူယျအားဖြင့်ပြောရလျှင် array (0, 0xFFFFF) ကို အသုံးပြု. မှန်ကန်သောဇာတ်ကောင်အဖွဲ့အစည်းများအားလုံးကိုကျော်လွှားလိမ့်မည်။ ဥပမာအားဖြင့်:
$output = mb_decode_numericentity($input, array(0, 0xFFFF), 'UTF-8');
ဤအလေ့အကျင့်သည်သငျသညျအများဆုံးဘုံဇာတ်ကောင်အစုံ partse နိုင်ကြောင်းသေချာစေသည်။
အချို့သောဝက်ဘ်စာမျက်နှာများတွင် HTML အဖွဲ့အစည်းများ (ဥပမာ - ဤ ကဲ့သို့သော) ဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများနှင့်ဒီဂျစ်တယ်အဖွဲ့အစည်းများပါ 0 င်နိုင်သည်။ အကယ်. ဤလွတ်မြောက်မှုနည်းစနစ်နှစ်ခုကိုတစ်ချိန်တည်းတွင်အသုံးပြုပါက MB_Decode_NumeraleTicality ကို ခေါ်ဆိုခြင်းသည်ဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများကိုတိုက်ရိုက်ခေါ်ဆိုနိုင်သော်လည်း HTML အဖွဲ့အစည်းများအလိုအလျောက်မလုပ်ဆောင်နိုင်ပါ။ ဤကိစ္စတွင် HTML entity ကို html_entity_decode function ကို သုံး. သက်ဆိုင်ရာဇာတ်ကောင်များသို့ပြောင်းလဲရန်လိုအပ်လိမ့်မည် ။
HTML entities များကိုဖွင့်ရန် HTML_ENTITY_DECDEDED ကို အသုံးပြုပါ။
$input = html_entity_decode($input, ENT_QUOTES, 'UTF-8');
$output = mb_decode_numericentity($input, array(0, 0xFFFF), 'UTF-8');
ဤသည်နှစ် ဦး စလုံးအဖွဲ့အစည်းများမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာနိုင်ပါတယ်ကြောင်းသေချာသည်။
MB_Decode_Numericalentity function သည်အထူးသဖြင့်ကြိုးရှည်ရှည်များသို့မဟုတ်ကိန်းဂဏန်းများအရအမြောက်အမြားကိုကိုင်တွယ်သောအခါလုပ်ငန်းစဉ်နှေးကွေးသည်။ သင်၏လျှောက်လွှာတွင်ဤကဲ့သို့သောခွဲခြမ်းစိတ်ဖြာခြင်းမျိုးကိုသင်မကြာခဏလိုအပ်ပါကစွမ်းဆောင်ရည်မြှင့်တင်မှုများကိုသင်ကြုံတွေ့ရနိုင်သည်။
ဤကိစ္စတွင်ခွဲခြမ်းစိတ်ဖြာခြင်း၏အကောင်းမြင်မှုကိုစဉ်းစားရန်ဖြစ်နိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်ရှေ့ပြေးအဆုံးတွင် entity ကိုကြိုတင်မသုံးနိုင်, သို့မဟုတ်တူညီသော string ကိုအကြိမ်ကြိမ်ခွဲခြမ်းစိတ်ဖြာရန် cache ကိုသုံးနိုင်သည်။
MB_Decode_Numeralyentity function သည်မမှန်ကန်သောဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများပြုပြင်ပြောင်းလဲသည့်အခါ မှားယွင်းသောမှားယွင်းမှုများကို ပြန်ပို့သည်။ အကယ်. သင်၏ input တွင်မဖြေရှင်းနိုင်သောဂဏန်းအဖွဲ့အစည်းများပါ 0 င်ပါကနောက်ထပ်ပြုပြင်ပြောင်းလဲရေးအတွက်လုပ်ငန်း၏ပြန်လာတန်ဖိုးကိုစစ်ဆေးရန်လိုအပ်သည်။
MB_Decode_NumericalENTETION ကို ခွဲထုတ်ခြင်းကြောင့်ဖြစ်ရခြင်းကြောင့်ဖြစ်ရခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားရန် MB_Decode_Numericality ကို ခေါ်ဆိုခြင်းရှိမရှိဆုံးဖြတ်ရန်သေချာအောင်လုပ်ပါ။
$output = mb_decode_numericentity($input, array(0, 0xFFFF), 'UTF-8');
if ($output === false) {
echo "ခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ!";
} else {
echo $output;
}