PHP တွင် Mbstring extension သည် UTF-8 ကဲ့သို့သော Multibyte ဇာတ်ကောင်အစုံများနှင့်ဆက်ဆံရာတွင်အသုံးဝင်သောလုပ်ဆောင်မှုများစွာကိုပေးသည်။ MB_STRPOS သည် strings ရှိအလွှာများ၏နေရာကိုရှာဖွေရန်အသုံးပြုသည်။ MB_Get_info သည် Mbstring functions များအကြောင်းသတင်းအချက်အလက်ရရှိရန်အသုံးပြုသည်။ ဤရွေ့ကားလုပ်ဆောင်ချက်နှစ်ခုကွဲပြားသော်လည်းအတူတကွအသုံးပြုသောအခါ, encoding ပြ issues နာများအတွက်အထူးဂရုပြုသင့်ပါတယ်။
MB_STRPOS ကို အသုံးပြု. ဇာတ်ကောင်ရာထူးများကိုရှာဖွေရန် Encoding ကိုစနစ်တကျကိုင်တွယ်ရန်အလွန်အရေးကြီးသည်။ အထူးသဖြင့် Multibyte ဇာတ်ကောင်အစုံ (UTF-8 or GBK ကဲ့သို့သော) နှင့်ဆက်ဆံရာတွင် encoding ကိုစနစ်တကျကိုင်တွယ်ခြင်းမရှိပါက၎င်းသည်မှားယွင်းသောဇာတ်ကောင်ရာထူးများသို့မဟုတ်မမှန်ကန်သောနေရာချထားခြင်းများဖြစ်ပေါ်စေနိုင်သည်။
MB_STRPOS သည်အခြား string တစ်ခုတွင် string တစ်ခု၏အနေအထားကိုရှာဖွေရန်အသုံးပြုသည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
mb_strpos(string $haystack, string $needle, int $offset = 0, string $encoding = mb_internal_encoding()): int|false
$ haystack ကိုရှာဖွေရန် string ကိုဖြစ်ပါတယ်။
$ အပ် သည်ကျွန်ုပ်တို့ရှာဖွေနေသည့်အလွှာဖြစ်သည်။
$ Offset သည် မည်သည့်နေရာတွင်စတင်မည်ကိုညွှန်ပြသည့် option ကို option ကို offset တစ်ခုဖြစ်သည်။
$ encoding သည် Internal encoding (များသောအားဖြင့် UTF-8) မှ default encoding encoding ဖြစ်သည်။
MB_STRPOS သည် encoding မဖော်ပြသောအခါ MB_STRPOS သည်မူလတန်း encoding ကိုပုံမှန်အားဖြင့်အသုံးပြုလိမ့်မည်။
MB_STRPOS သည် ပုံမှန်ဇာတ်ကောင် encoding အပေါ် အခြေခံ. ကြိုးများပြုလုပ်လိမ့်မည်။ သို့သော်ဘာသာစကားမျိုးစုံပတ်ဝန်းကျင်တွင် coding ရှေ့နောက်ညီညွတ်မှုသည်အလွန်အရေးကြီးသည်။ Haystack နှင့် Dedle သည် မတူညီသော encodings ကွဲပြားခြားနားသော encodings ကိုအသုံးပြုပါကစာလုံးများကိုမဖျက်နိုင်သည့်ပြ problem နာသည်မှန်ကန်စွာပေါ်ပေါက်လာလိမ့်မည်။
MB_STRPOS ကို အသုံးပြုသောအခါ encoding ပြ problem နာမရှိပါက MB_GENT_INFO ကို သုံး. လက်ရှိ encoding settings အပါအ 0 င် Mbstring function ၏ configure function ကိုရရှိရန် MB_Get_info ကိုသုံးနိုင်သည်။
<?php
// ရယူ mbstring ပြင်ဆင်မှုသတင်းအချက်အလက်
$info = mb_get_info();
echo "လက်ရှိပြည်တွင်းရေးကုဒ်ဖြစ်ပါတယ်: " . $info['internal_encoding'] . "<br>";
// encoding ကိုသတ်မှတ်ပါ UTF-8
mb_internal_encoding("UTF-8");
// ကြိုးများနှင့်အလွှာများ
$haystack = "ဒီစမ်းသပ်မှု string ကိုဖြစ်ပါတယ်,တရုတ်အက္ခရာများပါရှိသည်。";
$needle = "စမ်းသပ်မှု";
// အသုံးပြု mb_strpos အလွှာတစ်ခု၏တည်နေရာကိုရှာပါ
$position = mb_strpos($haystack, $needle);
if ($position !== false) {
echo "အလွှာ '$needle' တည်နေ '$haystack' အတွက်အနေအထား: $position<br>";
} else {
echo "没有找到အလွှာ '$needle'。<br>";
}
?>
အထက်ပါကုဒ်တွင် MB_Get_info ကို လက်ရှိ Mbstring Configuration Information, အထူးသဖြင့် internal_encoding ကို ရရှိရန်အသုံးပြုသည်။ ၎င်းသည်တသမတ်တည်း coding ကို coding ကိုသေချာစေရန်နှင့် MB_CRPOS ကို အသုံးပြုသောအခါ code သို့မဟုတ် positioning အမှားများကိုရှောင်ရှားရန်ကူညီသည်။
string processing လုပ်တဲ့အခါမှာ function တွေအားလုံးကိုမှန်ကန်စွာ encoding ကိုမှန်ကန်စွာ encoding ကိုသေချာအောင်လုပ်ချင်တယ်ဆိုရင် MB_internal_encoding ("UTF-8") အစမှာ MB_Stros ဒါမှမဟုတ်အခြား mbstros or functions တွေကိုသုံးပါ။
MB_GEget_info ကို အသုံးပြုခြင်းသည်လက်ရှိအက္ခရာများကိုသင်နားလည်နိုင်ပြီးရှေ့နောက်မညီစာဝှက်ခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားနိုင်သည်။
Strings ကိုရှာဖွေရန် MB_STRPOS ကိုအသုံးပြုသောအခါနှစ်ခု၏ encodings သည်တသမတ်တည်းဖြစ်ကြောင်းသေချာပါစေ။
Multibyte ဇာတ်ကောင်အစုံများအတွက် (UTF-8 ကဲ့သို့သော) အတွက်ကြိုးကြိုးများမစတင်မီစည်းလုံးသော encoding ကိုသတ်မှတ်ရန်အထူးအကြံပြုလိုပါသည်။
ဤဆောင်းပါးသည် MB_CRPOS နှင့် encoding processing ကိုနားလည်ရန်သင့်အတွက်အထောက်အကူဖြစ်လိမ့်မည်ဟုမျှော်လင့်ပါသည်။ သင့်တွင်အခြားမေးခွန်းများသို့မဟုတ်ထပ်မံရှင်းပြရန်အခြားမေးခွန်းများသို့မဟုတ်နေရာများရှိပါကကျွန်ုပ်တို့၏ gitbox.net ဝက်ဘ်ဆိုက်ကိုကြည့်ပါ။