PHP ပရိုဂရမ်တွင် string processing သည်အသုံးအများဆုံးအလုပ်များတစ်ခုဖြစ်သည်။ ကြိုးများတူးဖော်ခြင်းအတွက် strings_split နှင့် mb_str_split လုပ်ဆောင်ချက်များကိုမကြာခဏဆိုသလို strings array များအဖြစ်ခွဲထွက်ရန်အသုံးပြုကြသည်။ လုပ်ဆောင်ချက်နှစ်ခုသည်လည်းအလားတူအလုပ်လုပ်ကြသည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုရောနှောခြင်းကအထူးသဖြင့် UTF-8 ကဲ့သို့သော Multibyte ဇာတ်ကောင်အစုံနှင့်ဆက်ဆံရာတွင်အမှားများကိုဖြစ်ပေါ်စေသည်။ ဤဆောင်းပါးသည် PHP ရှိဤလုပ်ဆောင်မှုနှစ်ခုကိုရောနှောခြင်းကြောင့်ဖြစ်နိုင်ချေရှိသောအမှားများကိုမည်သို့ရှောင်ရှားရမည်ကိုလေ့လာလိမ့်မည်။
Str_Split function သည် PHP တွင် string တစ်ခုဖြစ်သည့် string တစ်ခုဖြစ်သည့် strings တစ်ခုဖြစ်စေသည့် strings တစ်ခုသို့ခွဲထားသည့် strings ကိုခွဲခြားထားသည်။ ဤလုပ်ဆောင်မှုကိုပုံမှန်အားဖြင့် byte တစ်ခုစီ၏ယူနစ်တစ်ခုစီတွင်ခွဲထားသည်။ ဆိုလိုသည်မှာ ISO-8859-1 သို့မဟုတ် ASCII ကဲ့သို့သော Single-byte character sets များကိုကိုင်တွယ်သောအခါ၎င်းသည်ကောင်းမွန်စွာလုပ်ဆောင်သည်။ သို့သော် Multibyte ဇာတ်ကောင်အစုံများအတွက် (UTF-8) အတွက် str'tsplit သည် ဇာတ်ကောင်တစ် ဦး စီကိုသီးခြား byte တစ်ခုအဖြစ်ခွဲထားလိမ့်မည်။
နမူနာကုဒ်:
$string = "မင်္ဂလာပါ,ကမ်ာဘ";
$result = str_split($string);
print_r($result);
output ကိုဖြစ်လိမ့်မည်:
Array
(
[0] => ခင်ဗျားတို့
[1] => ကောင်းသော
[2] => ,
[3] => ကမ်ာဘ
[4] => နယ်နိမိတ်
)
strow_split နှင့်မတူဘဲ MB_Str_Split သည် Multibyte string function ကိုမှန်ကန်စွာပြုလုပ်သော Multibyte string function ဖြစ်သည်။ ၎င်းကို Mbstring extension မှတဆင့်ထောက်ပံ့သည်။ ထို့ကြောင့်၎င်းကိုအသုံးပြုသောအခါဆာဗာတွင် extension ကိုသေချာအောင်ပြုလုပ်ရန်လိုအပ်သည်။
နမူနာကုဒ်:
$string = "မင်္ဂလာပါ,ကမ်ာဘ";
$result = mb_str_split($string);
print_r($result);
ထုတ်လွှင့်မှုရလဒ်များကိုမှန်ကန်စွာဖော်ပြလိမ့်မည်။
Array
(
[0] => ခင်ဗျားတို့
[1] => ကောင်းသော
[2] => ,
[3] => ကမ်ာဘ
[4] => နယ်နိမိတ်
)
အကယ်. သင်သည် str'stplit နှင့် mb_str_split ကိုအသုံးပြုပါက, strip_Split သည် string ကို bytes များဖြင့်ခွဲထားလိမ့်မည်။ MB_Str_Split သည် string ကိုဇာတ်ကောင်များ၏အမှန်တကယ် encoding နှင့်အညီ string ကိုခွဲထုတ်လိမ့်မည်။
အကယ်. သင်သည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုရောစပ်ပါကအောက်ပါပြ problems နာများကိုဖြစ်စေနိုင်သည်။
ကြိုးများပြိုကွဲခြင်း၏ရလဒ်များသည်အထူးသဖြင့် UTF-8-encoded strings နှင့်ဆက်ဆံရာတွင်ကိုက်ညီမှုမရှိပါ။
ကြိုးတွေကိုမှားယွင်းစွာဖြည့်ဆည်းပေးနိုင်ပြီး,
strow_split သည်အထူးသဖြင့်တစ်ခုတည်းသော byte character sets များနှင့်ဆက်ဆံရာတွင်များသောအားဖြင့် mb_str_split ထက်ပိုမိုထိရောက်သော PHP function ဖြစ်သည်။ သို့သော် MB_Str_Split သည် Encoding checks နှင့် twipe များကိုခွဲထုတ်နေစဉ်အတွင်းလုပ်ဆောင်သည် ။ နှစ်ခုရောနှောခြင်းကမလိုအပ်ဘဲစွမ်းဆောင်ရည်ဆုံးရှုံးမှုကိုဖြစ်စေနိုင်သည်။
PHP ရှိဤလုပ်ဆောင်ချက်နှစ်ခုကိုရောနှောခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားနိုင်ရန်အတွက်အောက်ပါမူများကိုလိုက်နာနိုင်ပါသည်။
အကယ်. သင်၏လျှောက်လွှာသည်အဓိကအားဖြင့် Multibyte ဇာတ်ကောင်အစုံ (UTF-8 ကဲ့သို့သော) ကိုအဓိကထားပါက MB_Str_Split ကို တူညီစွာအသုံးပြုရန်အကြံပြုသည်။ Multibyte ဇာတ်ကောင်များကိုမှန်ကန်စွာကိုင်တွယ်နိုင်ပြီး segment အမှားများကိုရှောင်ရှားနိုင်သည်။
$string = "မင်္ဂလာပါ,ကမ်ာဘ";
$result = mb_str_split($string);
print_r($result);
အကယ်. သင်သည် strow_split ကို သုံးရန်လိုပါက (ဥပမာ - byte character sets sets ကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ) string ကိုမှန်ကန်စွာ encoded သေချာအောင်လုပ်ပါ။ string ကို single-byte encoding သို့ပြောင်းရန် MB_ConVert_encoding function ကိုသုံးနိုင်သည်။
$string = mb_convert_encoding("မင်္ဂလာပါ,ကမ်ာဘ", "ISO-8859-1", "UTF-8");
$result = str_split($string);
print_r($result);
MB_Str_Split ကို အသုံးပြုသောအခါဆာဗာသည် mbstring extension ကိုတပ်ဆင်ပြီးဖွင့်ထားကြောင်းသေချာပါစေ။ extension ကိုဖွင့်ထားရှိမရှိကိုသင်စစ်ဆေးနိုင်သည်။
if (extension_loaded('mbstring')) {
echo "mbstring is enabled!";
} else {
echo "mbstring is not enabled!";
}
PHP တွင် strings များပြုလုပ်သောအခါ strings_split နှင့် mb_str_split နှင့် mb_str_split နှစ်ခုသည်အုပ်စုလိုက်ခွဲထားသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ၎င်းတို့သည်မတူညီသောအခြေအနေများတွင်အသုံးပြုသည်။ strat_split သည် single-byte character set များကိုပြုပြင်ရန်အတွက်ပိုမိုသင့်တော်သည် ။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုရောနှောခြင်းက encoding အမှားများနှင့်စွမ်းဆောင်ရည်ပြ problems နာများကိုဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့်၎င်းကိုတတ်နိုင်သမျှရှောင်ရှားသင့်သည်။ MB_Str_Split ကို MB_Str_Split ကိုသုံးရန်နှင့် strings ၏ encoding ရှေ့နောက်ညီညွတ်မှုကိုသေချာစွာသုံးရန်အကြံပြုသည်။ ကြိုးများတူးဖော်သည့်အခါပရိုဂရမ်၏တည်ငြိမ်မှုနှင့်မှန်ကန်မှုကိုသေချာစေသည်။