လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_GET_INFO နှင့် MB_SUBSUTH လုပ်ဆောင်ချက်များနှင့်ပေါင်းစပ်ပါ 0 င်သော Multibyte Strings process

MB_GET_INFO နှင့် MB_SUBSUTH လုပ်ဆောင်ချက်များနှင့်ပေါင်းစပ်ပါ 0 င်သော Multibyte Strings process

gitbox 2025-05-11

PHP ၏ Mbstring extension သည် byte multi-byte အက္ခရာများ (တရုတ်, ဂျပန်နှင့်ကိုးရီးယား) နှင့်ဆက်ဆံရာတွင်ခိုင်မာသောအထောက်အပံ့ဖြစ်သည်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည်ကြိုးများကိုလုံခြုံစွာကြားဖြတ်ထားလိုပါက MB_substr သည်မရှိမဖြစ်လိုအပ်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင်လူအများစုသည် MB_Get_info ၏အရေးပါမှုကိုလျစ်လျူရှုထားသည့် MB_Get_info ၏အရေးပါမှုကိုလျစ်လျူရှုကြသည်။

ဤဆောင်းပါးသည် MB_Get_info ကို MB_GET_InFO ကို MB_Substrin ကိုအသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ အဘယ်ကြောင့် MB_get_info လိုအပ်သနည်း။

MB_Get_info သည် Internal encoding ( internal_encoding ) ကဲ့သို့သော MBString ၏လက်ရှိချိန်ညှိချက်များနှင့် ပတ်သက်. အသေးစိတ်အချက်အလက်များကိုပြန်လည်ပေးပို့ခဲ့သည်။ အကယ်. ကျွန်ုပ်တို့သည် MB_Subrstr ကို Encoding ကိုမအတည်ပြုဘဲတိုက်ရိုက်အသုံးပြုပါက, ထို့ကြောင့်၎င်းသည်လက်ရှိပတ် 0 န်းကျင်ပြင်ဆင်မှုကိုကြိုတင်နားလည်ရန်အလေ့အကျင့်ကောင်းတစ်ခုဖြစ်သည်။

ဥပမာ -

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

// output ကို e.g.:
// Array
// (
//     [internal_encoding] => UTF-8
//     [http_output] => UTF-8
//     [http_input] => pass
//     ...
// )
?>

internal_encoding ကိုကြည့်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် string processing အတွက်ပုံမှန်အားဖြင့် encoding ကိုအသုံးပြုသည်ကိုကျွန်ုပ်တို့သိနိုင်သည်။

2 ။ မှန်ကန်စွာ mb_substrstr ကိုသုံးပါ

MB_substrint သည် Multi-byte strings များအတွက်အထူးဒီဇိုင်းပြုလုပ်ထားသည်။ ၎င်း၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 <?php
$string = "မင်္ဂလာပါ,ကမ်ာဘ!";
$substring = mb_substr($string, 0, 2); // မှ0ဇာတ်ကောင်များဖြင့်စတင်ပါ,ခူး2ဇာတ်ကောင်
echo $substring; // ထုတ်လုပ်ခြင်း:မင်္ဂလာပါ
?>

အကယ်. သင်သည် MB_Substrstr ကို မသုံးပါကသာမန် substr ကို သုံးပါကသာမန် substr ကိုသုံးပါ။

3 ။ mb_get_info နှင့် mb_substr ကိုသုံးရန်

ကောင်းသောအလေ့အကျင့်တစ်ခုမှာ - MB_Substr ကို မပြုလုပ်မီမှန်ကန်သော encoding ကိုအတည်ပြုပြီးသတ်မှတ်ပါ။

ဥပမာအားဖြင့်:

 <?php
// သဘာဝပတ်ဝန်းကျင်အထောက်အပံ့ကိုသေချာUTF-8
$info = mb_get_info();
if (strtoupper($info['internal_encoding']) !== 'UTF-8') {
    mb_internal_encoding('UTF-8');
}

// လုံခြုံစွာသုံးပါmb_substr
$string = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် https://gitbox.net/page";
$substring = mb_substr($string, 0, 6); // ခူး前6ဇာတ်ကောင်
echo $substring; // ထုတ်လုပ်ခြင်း:အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည်
?>

ဤနည်းအားဖြင့်ဆာဗာ၏မူလ encoding သည် UTF-8 မဟုတ်သော်လည်းပင်ပရိုဂရမ်သည်မည်သည့်အမှားအယွင်းများကိုမဆိုလုပ်ဆောင်ရန်မည်သည့်အမှားအယွင်းများမလုပ်နိုင်ပါ။

4 ။ သိကောင်းစရာများ - Mbstring ပတ်ဝန်းကျင်ရှာဖွေတွေ့ရှိမှု

ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင် Mbstring extension ကို install လုပ်ပြီးဖွင့်ထားကြောင်းသေချာစေရန်ရိုးရှင်းသောစစ်ဆေးမှုကိုထည့်သွင်းရန်အကောင်းဆုံးဖြစ်သည်။

 <?php
if (!function_exists('mb_substr')) {
    die('ကျေးဇူးပြုပြီးပထမဆုံးထည့်သွင်းပါmbstringတိုးချဲ့!');
}
?>

ဒီလိုမှမဟုတ်ရင်ပရိုဂရမ်သည် Multi-byte စစ်ဆင်ရေးကိုမထောက်ပံ့သောပတ်ဝန်းကျင်တွင်တိုက်ရိုက်ပျက်ကျနိုင်သည်။

အကျဉ်းချုပ်

  • MB_Get_info သည် သင့်အားပတ်ဝန်းကျင်ထိန်းသိမ်းရေးကိုနားလည်ပြီးမျက်စိကန်းသောစစ်ဆင်ရေးများကိုရှောင်ရှားရန်ကူညီသည်။

  • MB_Subyr သည် Multibyte String Interception ကိုကိုင်တွယ်ရန်အတွက် ဦး စားပေးနည်းလမ်းဖြစ်သည်။

  • string ကိုတရားဝင်ဆက်သွယ်ခြင်းမပြုမီ, UTF-8 အဖြစ်ပေါင်းစည်းခြင်းကဲ့သို့သော encoding ကိုအတည်ပြုခြင်းနှင့်သတ်မှတ်ခြင်းသည်အကောင်းဆုံးဖြစ်သည်။

  • ပတ် 0 န်းကျင်နှင့်ကိုက်ညီမှုကိုဂရုပြုပါ။

ဤအသေးစိတ်အချက်အလက်များကိုကျွမ်းကျင်ပြီးနောက်တရုတ်, ဂျပန်နှင့်ကိုရီးယားကြိုးများနှင့်ဆက်ဆံရာတွင်ခေါင်းကိုက်ခြင်းမရှိတော့ပါ။