PHP တွင် (တရုတ်, ဂျပန်ဘာသာ, ကိုရီးယား, ကိုးရီးယားစသဖြင့်) Multibyte strings များ (တရုတ်, ဂျပန်, ကိုးရီးယားစသည်တို့) ကို PHP တွင်ပြုလုပ်သောအခါ (ဥပမာ strlen ကဲ့သို့) ကိုအသုံးပြုသည်။ ဘာဖြစ်လို့လဲဆိုတော့ဒီလုပ်ဆောင်ချက်တွေကိုအက္ခရာများထဲမှာမဟုတ်ဘဲ bytes ထဲမှာတွက်ချက်ထားလို့ပဲ။ ဤအချိန်တွင်ကျွန်ုပ်တို့သည်ပိုမိုတိ ကျသော string operations များအောင်မြင်ရန် PHP ၏ multibyte string extension (Mbstring) တွင် function များကိုအသုံးပြုရန်လိုအပ်သည် ။
ဤဆောင်းပါးသည်သင့်အား MB_strlen နှင့် MB_Get_info ၏အခြေခံအသုံးပြုမှုကိုယူဆောင်လာပြီး Multibyte Strings ၏အရှည်ကိုတိကျစွာစစ်ဆေးရန်သူတို့မည်သို့ကူညီပေးကြောင်းသရုပ်ဖော်ရန်ဥပမာသုံးပါလိမ့်မည်။
ရိုးရှင်းတဲ့ဥပမာတစ်ခုကိုကြည့်ရအောင်။
$str = "မင်္ဂလာပါ,ကမ်ာဘ";
echo strlen($str); // ထုတ်လုပ်ခြင်း:15
ဤ string တွင်တရုတ်အက်ခရာ 5 လုံးသာရှိသည်။ Strlen သည် "byte နံပါတ်" ကိုရေတွက်သည်။
အကယ်. ကျွန်ုပ်တို့သည်ဇာတ်ကောင်များ၏စစ်မှန်သောစာလုံးအရေအတွက်ကိုရလိုပါက MB_strinlen ကို အသုံးပြုသင့်သည်။
echo mb_strlen($str); // ထုတ်လုပ်ခြင်း:5
ဤနည်းဖြင့်ကျွန်ုပ်တို့သည်မှန်ကန်သောစာလုံးအရေအတွက်ကိုရရှိသည်။
MB_Strlen သည် Multibyte ဇာတ်ကောင်များအတွက်အထူးဒီဇိုင်းပြုလုပ်ထားသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။
int mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
$ str : အရှည်တိုင်းတာရန် string ကို
$ encoding : optionaling, encoding type ကို MB_Internal_encoding () မှ ပြန်လာသော encoding ကိုအသုံးပြုရန် default ကိုသတ်မှတ်ပါ။
ဥပမာ -
$str = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် https://gitbox.net";
$length = mb_strlen($str, 'UTF-8');
echo "ဇာတ်ကောင်အရှည်သည်:$length";
ထုတ်လုပ်မှု -
ဇာတ်ကောင်အရှည်သည်:18
ဤသည်မှန်ကန်စွာက "ဇာတ်ကောင်အရေအတွက်" ကိုရောနှောထားသောတရုတ်နှင့်အင်္ဂလိပ် strings များတွင် bytes အရေအတွက်မဟုတ်ဘဲပေါင်းစပ်ထားသည်။
MB_Get_info သည် သင့်အားလက်ရှိ Mbstring Configuration, အထူးသဖြင့်အတွင်းပိုင်း encoding method ကိုနားလည်ရန်ကူညီနိုင်သည်။
$info = mb_get_info();
print_r($info);
ရလဒ်ဥပမာ:
Array
(
[internal_encoding] => UTF-8
[http_input] => pass
[http_output] => pass
[language] => neutral
[encoding_translation] => 0
...
)
၎င်းသည် UTF-8 encoding ကိုလက်ရှိအသုံးပြုနေသည်ဟုဆိုထားသည်။ MB_strlen တွက်ချက်မှုရလဒ်များသည်မတိကြောင်းသင်တွေ့ရှိပါကအတွင်းပိုင်း encoding ကိုမှန်ကန်စွာသတ်မှတ်ထားခြင်းရှိမရှိစစ်ဆေးရန်အထောက်အကူပြုသည်။
တိကျသောသတင်းအချက်အလက်များကိုပြန်ပို့ရန်လည်းသင်သတ်မှတ်နိုင်သည်။
echo mb_get_info("internal_encoding"); // ထုတ်လုပ်ခြင်း:UTF-8
ပြ problems နာများကိုရှောင်ရှားရန် default Multibyte encoding ကို script ၏အစတွင်သတ်မှတ်ရန်အကြံပြုသည်။
mb_internal_encoding("UTF-8");
MB_Strlen , MB_StrClen နှင့်အခြားလုပ်ဆောင်မှုများကဲ့သို့သောလုပ်ဆောင်မှုများသည် UTF-8 တွင်ကြိုးကြိုးများပြုလုပ်ရန် UTF-8 တွင် encoded ဖြစ်သည်။