လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_Get_info သည်ပုံမှန်အစည်းအဝေးပွဲများကို coding သည့်အခါ encoding ပြ issues နာများကိုကိုင်တွယ်ရန် MB_EREG နှင့်ပေါင်းစပ်ထားသည်

MB_Get_info သည်ပုံမှန်အစည်းအဝေးပွဲများကို coding သည့်အခါ encoding ပြ issues နာများကိုကိုင်တွယ်ရန် MB_EREG နှင့်ပေါင်းစပ်ထားသည်

gitbox 2025-05-11

PHP တွင်ကျွန်ုပ်တို့သည်စာသားကိုက်ညီမှုအတွက်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုလေ့ရှိသည်။ သို့သော်ပုံမှန်အသုံးအနှုန်းများသည်ဘာသာစကားမျိုးစုံပါ 0 င်ခြင်းနှင့်ဆက်ဆံရာတွင်အထူးသဖြင့် Multi-byte character sets (UTF-8, GBK စသည်) နှင့်ကိုက်ညီသည့်အခါ encoding ပြ problems နာများကိုတွေ့ကြုံခံစားနိုင်သည်။ ဤအချိန်တွင် PHP ၏ Mbstring extension သည်အထူးသဖြင့် MB_Get_info နှင့် MB_ERAG functions mob_ereg လုပ်ဆောင်ချက်များအားခိုင်မာစေသည်။ ဤဆောင်းပါးသည် encoding ပြ problem နာကိုဖြေရှင်းရန်နှင့်ပုံမှန်လိုက်စားရန်အတွက်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့ပေါင်းစပ်ညှိနှိုင်းရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ MB_GET_INFO နှင့် MB_ERREG ကိုနားလည်ပါ

1.1 mb_get_info function ကို

MB_GEGET_INFO function ကို Multibyte ဇာတ်ကောင် encoding နှင့်ပတ်သက်သောသတင်းအချက်အလက်များကိုရရှိရန်အသုံးပြုသည်။ ၎င်းသည်လက်ရှိ PHP ပတ်ဝန်းကျင်တွင်လက်ရှိ PHP ပတ်ဝန်းကျင်တွင်ပါ 0 င်သော PHP ပတ်ဝန်းကျင်တွင်ပါ 0 င်သော PHP ပတ်ဝန်းကျင်တွင်ပါ 0 င်သော Multi-byte string encluding ်ဌာန်းချက်နှင့်ပတ်သက်သည့်သတင်းအချက်အလက်များကိုပြန်လည်ပေးအပ်သည်။

1.2 MB_ereg function ကို

MB_ereg function သည်ပုံမှန်စကားရပ်ကိုက်ညီမှုပြုလုပ်ရန်အသုံးပြုသော Multibyte Safe Version ဖြစ်သည်။ ၎င်းသည်ပုံမှန် Eserg function နှင့်ဆင်တူသော်လည်း Multibyte ဇာတ်ကောင်အစုံများကိုထောက်ပံ့သည်။ ဤလုပ်ဆောင်ချက်၏အဓိကလက်ခဏာတစ်ခုမှာ၎င်းသည်ကိုက်ညီမှုမရှိသော encoding များကြောင့်ကိုက်ညီသောမအောင်မြင်မှုများကိုရှောင်ရှားခြင်း,

2 ။ coding ပြ problem နာကိုဖြေရှင်းရန်ခြေလှမ်းများ

Encoding ပြ issues နာများကိုပုံမှန်အသုံးအနှုန်းများဖြင့်မှန်ကန်စွာကိုင်တွယ်နိုင်ရန်အတွက်အောက်ပါအဆင့်များကိုသေချာစေရန်လိုအပ်သည် -

2.1 PHP ပတ်ဝန်းကျင်ကိုမှန်ကန်စွာ configure လုပ်ထားကြောင်းသေချာပါစေ

MB_Get_info နှင့် MB_ereg ကို မစတင်မီ PHP ၏ Multibyte String Extension ( Mbstring ) ကို install လုပ်ပြီး enable လုပ်ထားကြောင်း ဦး စွာ ဦး စွာသေချာအောင်လုပ်ရမည်။ install မလုပ်ပါက၎င်းကိုအောက်ပါ command မှတဆင့် install လုပ်နိုင်သည်။

 sudo apt-get install php-mbstring

Mbstring extension ကိုဖွင့်လှစ်ပြီးနောက် MB_Get_info () ကို သုံး. လက်ရှိဇာတ်ကောင် encoding settings ကိုကြည့်ရှုရန်။ ဥပမာအားဖြင့်:

 <?php
// ရယူmbstringပြင်ဆင်မှုသတင်းအချက်အလက်
$mb_info = mb_get_info();
print_r($mb_info);
?>

ရလဒ်ဥပမာ:

 Array
(
    [internal_encoding] => UTF-8
    [http_output] => pass
    [http_input] => pass
    [language] => neutral
    [encoding_translation] => 0
    [encoding_conversion] => 0
)

2.2 မှန်ကန်သောပုံမှန်ပွဲများကို encode လုပ်ရန် MB_EREG ကိုသုံးပါ

Mbstring extension နှင့်မှန်ကန်သော encoding settings များကိုသင်သေချာစေရန်အတွက်ကျွန်ုပ်တို့သည် MB_ERAG ကို ပုံမှန်ကိုက်ညီမှုအတွက်အသုံးပြုနိုင်သည်။ အသုံးအများဆုံးအလေ့အကျင့်သည်ပုံမှန်အသုံးအနှုန်း၏ဇာတ်ကြောင်း encoding ကို target string နှင့်ကိုက်ညီစေရန်သေချာစေရန်ဖြစ်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် UTF-8 encoded text အပိုင်းအစတစ်ခုမှတရုတ်ဝေါဟာရများနှင့်လိုက်လျောညီထွေဖြစ်လိုပါသညျဆိုပါစို့။

 <?php
// တည်ဆောက်သည် mbstring ကုဒ်
mb_internal_encoding("UTF-8");

// ပစ်မှတ် string ကို
$text = "ဒါကစမ်းသပ်မှုစာသားပါ";

// အသုံးပြု mb_ereg ပုံမှန်ကိုက်ညီလုပ်ဆောင်ပါ
if (mb_ereg("စမ်းသပ်မှု", $text)) {
    echo "အောင်မြင်စွာကိုက်ညီပါ!";
} else {
    echo "ပွဲစဉ်မအောင်မြင်ပါ!";
}
?>

အထက်ပါကုဒ်တွင် MB_ereg သည် Set encoding (UTF-8) အရတရုတ်စာလုံးများကိုမှန်ကန်စွာကိုက်ညီလိမ့်မည်။ အကယ်. Mbstring extension ကိုမသုံးပါကပုံမှန်ပုံမှန်ဖော်ပြချက် (ဥပမာ EereG ကဲ့သို့) သည် Multi-byte အက္ခရာများကိုမကိုက်ညီပါ,

2.3 စာသားကိုမတူညီသော encodings နှင့်အတူကိုင်တွယ်ခြင်း

စာသား encoding texting သည် PHP ၏ default encoding နှင့်မကိုက်ညီပါက MB__erg သည် ပစ်မှတ် encoding ကိုသတ်မှတ်ရန်ရွေးချယ်စရာတစ်ခုပေးသည်။ ဥပမာအားဖြင့်, အကယ်. သင်သည် GBK encoded စာသားနှင့်လိုက်လျောညီထွေဖြစ်လိုပါကသင်လုပ်နိုင်သည်။

 <?php
// တည်ဆောက်သည်ကုဒ်为 GBK
mb_internal_encoding("GBK");

// ပစ်မှတ် string ကို
$text = "ဒါကစမ်းသပ်မှုစာသားပါ";

// အသုံးပြု mb_ereg ပုံမှန်ကိုက်ညီလုပ်ဆောင်ပါ
if (mb_ereg("စမ်းသပ်မှု", $text)) {
    echo "အောင်မြင်စွာကိုက်ညီပါ!";
} else {
    echo "ပွဲစဉ်မအောင်မြင်ပါ!";
}
?>

ဤနည်းအားဖြင့် MB_ERAG သည် ပုံမှန်အစည်းအဝေးပွဲများမရှိဘဲပုံမှန်ပွဲများမရှိဘဲပုံမှန်ပွဲများမပါဘဲ GBK encoding ကိုအသုံးပြုသည်။

3 ။ mb_get_info နှင့် mb_ereg ကိုပေါင်းစပ်ခြင်း၏လက်တွေ့ကျတဲ့လျှောက်လွှာ

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည် MB_Get_info မှတဆင့်လက်ရှိပတ်ဝန်းကျင်၏ encoding သတင်းအချက်အလက်များကို MB_Get_info မှတစ်ဆင့်ရယူပြီးလိုအပ်သည့်ကိုက်ညီသော encoding ကိုချိန်ညှိနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်ဘာသာစကားမျိုးစုံလျှောက်လွှာတွင်အလုပ်လုပ်နေကြောင်းနှင့်မတူညီသောအသုံးပြုသူများကိုဒေသအပေါ် အခြေခံ. မည်သည့် encoding ကိုဆုံးဖြတ်ရန်လိုအပ်သည်ဆိုပါစို့။ MB_Get_info ကို dynamoding ကို dynamly သတ်မှတ်ထားနိုင်သည်။

 <?php
// ရယူ当前 mbstring ပြင်ဆင်မှုသတင်းအချက်အလက်
$mb_info = mb_get_info();
$current_encoding = $mb_info['internal_encoding'];

// ပစ်မှတ် string ကို
$text = "ဒါကစမ်းသပ်မှုစာသားပါ";

// အသုံးပြု mb_ereg 进行ကုဒ်匹配
if (mb_ereg("စမ်းသပ်မှု", $text)) {
    echo "အောင်မြင်စွာကိုက်ညီပါ!当前ကုဒ်:$current_encoding";
} else {
    echo "ပွဲစဉ်မအောင်မြင်ပါ!";
}
?>

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

MB_Get_info နှင့် MB_ereG ကို ပေါင်းစပ်ခြင်းအားဖြင့် PHP တွင် encoding ပြ problem နာကိုအလွယ်တကူဖြေရှင်းနိုင်သည်။ ပုံမှန်ပွဲစဉ်များသည် Multibyte Claits တွင်မှန်ကန်စွာပြုလုပ်နိုင်သည်။ Mbstring extension မှပေးသောဤလုပ်ဆောင်ချက်နှစ်ခုသည်ဘာသာစကားမျိုးစုံ applications များတွင်စာလုံးများနှင့်သက်ဆိုင်သည့်ပြ problems နာများကိုကိုင်တွယ်ဖြေရှင်းရန်အစွမ်းထက်သောကိရိယာများဖြစ်သည်။