Multi-byte strings (UTF-8 encoded encoded encoded တရုတ်, ဂျပန်, ကိုးရီးယားစသကဲ့သို့ပင်သာမန် strings လုပ်ဆောင်ချက်များသည်ပုံမှန်အားဖြင့်ဇာတ်ကောင်များ၏နယ်နိမိတ်များကိုမှန်ကန်စွာခွဲခြားသတ်မှတ်ရန်ပျက်ကွက်တတ်သည်။ ၎င်းသည်အထူးသဖြင့်ပြောင်းပြန် string ကိုစစ်ဆင်ရေးလုပ်ဆောင်သောအခါမှန်ကန်သည်။ ဤဆောင်းပါးသည် MB_Get_info မှတစ်ဆင့် Multibyte string ကို multibyte strings ၏ encoding information ကိုမည်သို့ရယူရမည်ကိုလေ့လာလိမ့် မည် ။
PHP ၏ built-in လုပ်ထုံးလုပ်နည်းများသည် ASCII အက္ခရာများကိုသာကိုင်တွယ်နိုင်ပြီး ASCII အက္ခရာများကိုသာကိုင်တွယ်နိုင်သည် ။ ဥပမာ -
$str = "မင်္ဂလာပါ,ကမ်ာဘ";
echo strrev($str); // output garbled code
အကြောင်းပြချက်မှာ strrev သည် "ဇာတ်ကောင်" သည်မည်မျှ bytes မည်မျှရှိသည်ကိုမသိပါ။
PHP ၏ Mbstring extension သည် multibyte strings များကိုကိုင်တွယ်သောလုပ်ဆောင်ချက်များကိုစုဆောင်းပေးသည်။ လက်ရှိ Multibyte configuration ကိုအတည်ပြုရန် MB_GEGT_InFO () ကို သုံးနိုင်သည် ။
$info = mb_get_info();
print_r($info);
၎င်းသည် internal encoding ( internal_encoding ) အပါအ 0 င်ခင်းကျင်းခြင်း (internal_encoding) အပါအ 0 င်ခင်းကျင်းမှုကိုပြန်ပေးလိမ့်မည်။
Array
(
[internal_encoding] => UTF-8
[http_input] => pass
[http_output] => pass
...
)
လက်ရှိ encoding အချက်အလက်အပေါ် အခြေခံ. string ကိုလုံခြုံစွာ invertt လုပ်နိုင်သည်။
function mb_strrev($str, $encoding = null) {
if ($encoding === null) {
$encoding = mb_internal_encoding();
}
$length = mb_strlen($str, $encoding);
$reversed = '';
for ($i = $length - 1; $i >= 0; $i--) {
$reversed .= mb_substr($str, $i, 1, $encoding);
}
return $reversed;
}
$str = "မင်္ဂလာပါ,ကမ်ာဘ";
echo mb_strrev($str); // ထုတ်လုပ်ခြင်း:ကမ်ာဘ,အိုကေ
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် MB_Internal_encoding () ( mb_encoding field) ကို အသုံးပြုသည်။
အကယ်. သင်သည်ကွဲပြားခြားနားသောအရင်းအမြစ်များမှကြိုးများကိုကိုင်တွယ်ဖြေရှင်းနေပါက, encoding သည်ယူနီဖောင်းမဖြစ်နိူင်ပါ။ MB_Detect_encoding () ကို mb_convert_encoding () ကိုသုံးနိုင်သည်။
$str = file_get_contents('https://gitbox.net/data.txt');
$encoding = mb_detect_encoding($str, mb_detect_order(), true);
if ($encoding !== 'UTF-8') {
$str = mb_convert_encoding($str, 'UTF-8', $encoding);
}
echo mb_strrev($str);
ဤနည်းအားဖြင့်အသုံးပြုသူများသည် GB2312, Big5 သို့မဟုတ် UTF-8 encoded text ကိုပြုလုပ်ပါစေကိစ္စရပ်ဖြစ်စေ, ၎င်းကိုစည်းလုံးသော encoding ထဲသို့ပြောင်းလဲနိုင်သည်။
MB_GET_INFO () ကိုယ်တိုင်သည် string inversion inversion လုပ်ငန်းများတွင်တိုက်ရိုက်ပါ 0 င်ခြင်းမဟုတ်သော်လည်း၎င်းသည်အရေးပါသော encoding information များကိုထောက်ပံ့ပေးသည် ။ encoding ကိုမှန်ကန်စွာရယူပြီး MB_strlen () နှင့် mb_substrart () ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် multibyte strings များကိုလုံခြုံစွာ invert နှင့် reliatly verty invert လုပ်နိုင်သည်။
၎င်းသည်နိုင်ငံတကာသို့ကျင့်သုံးခြင်း, သုံးစွဲသူထည့်သွင်းခြင်းသို့မဟုတ်အာရှဈေးကွက်အတွက်ဆောက်လုပ်ရေးစနစ်များကိုဆောက်လုပ်ရန်အတွက်အထူးသဖြင့်အရေးကြီးသည်။ အကယ်. သင်သည်ထိုကဲ့သို့သောစီမံကိန်းကိုတည်ဆောက်နေပါက Mbstring extension ကို enable extension ကို enable လုပ်ပြီး encoded အချက်အလက်များကိုရယူခြင်းနှင့်အသုံးပြုခြင်းကိုဂရုပြုပါ။