PHP, strips များ နှင့် mb_stropos များတွင် substring များ၏တည်နေရာကိုရှာဖွေရန်အသုံးပြုသောလုပ်ဆောင်ချက်နှစ်ခုလုံးတွင်အသုံးပြုသည်။ သို့သော်၎င်းတို့သည်သိသာထင်ရှားသည့်ကွဲပြားခြားနားမှုများရှိသည်။ ဤဆောင်းပါးသည်သူတို့၏ကွဲပြားခြားနားမှုများ, သက်ဆိုင်သည့်အခြေအနေများနှင့်စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုအသေးစိတ်ဆွေးနွေးပါမည်။
Strips - ဒီ string တစ်ခုကအခြား string တစ်ခုတွင်မည်သည့်နေရာတွင်ပေါ်လာသည့်နေရာကိုရှာရန် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ၎င်းသည်ဖြစ်ရပ်မှန်အာရုံမခံစားနိုင်သောနှင့်သာမန် ASCII ကြိုးများအတွက်သင့်တော်သော single-byte encoding ပေါ်တွင်အခြေခံသည်။
$haystack = "Hello world!";
$needle = "world";
$pos = stripos($haystack, $needle); // ဝင်သည် 6
MB_Stripos : ဤလုပ်ဆောင်မှုသည် Multi-byte string extension (Mbstring) မှလာသည်။ ၎င်း၏ function ကို strips နှင့်ဆင်တူသည်။ ၎င်းကိုအလွှာတစ်ခု၏တည်နေရာကိုရှာရန်နှင့်ဖြစ်ရပ်မှန်အာရုံမခံစားနိုင်ပါ။ strips များ နှင့်မတူဘဲ MB_Stropos သည် UTF-8, GBK စသည်ဖြင့် Multibyte ဇာတ်ကောင်အစုံများကိုကိုင်တွယ်ရန်သင့်တော်သည်။ ၎င်းသည် Multibyte encoded strings များအတွက်အကောင်းဆုံးဖြစ်သည်။
$haystack = "မင်္ဂလာပါ,ကမ်ာဘ!";
$needle = "ကမ်ာဘ";
$pos = mb_stripos($haystack, $needle); // ဝင်သည် 3
coding ထောက်ခံမှု:
Stripos သည် Single-byte encoded strings (ascii ကဲ့သို့) single-byte encoded strings များနှင့်သာအလုပ်လုပ်သည်။ ဆိုလိုသည်မှာ UTF-8 သို့မဟုတ်အခြား Multibyte ဇာတ်ကောင်အစုံများကိုကိုင်တွယ်သောကြိုးများနှင့်အလုပ်မလုပ်ပါ။
MB_Stropos သည် Multibyte encoding (UTF-8, GBK စသည်) အတွက်အထူးဒီဇိုင်းပြုလုပ်ထားသည်။
စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများ:
သာမန် ASCII ကြိုးများအနေဖြင့် MB_Stropos သည် MB_Stropos သည် Multibyte ဇာတ်ကောင်အစုံများကိုကိုင်တွယ်ရန်နောက်ထပ် overhead လိုအပ်သည်။
အကယ်. ပြုပြင်ထားသော string သည် UTF-8 သို့မဟုတ်အခြား multibyte ဇာတ်ကောင်အစုံဖြစ်ပါက MB_Stropos သည် မရှိမဖြစ် လိုအပ်သည်။
strippos သုံးပြီးအခြေအနေများ:
string encoding သည်တစ်ခုတည်း byte (ဥပမာ ascii encoding ကဲ့သို့) သည် singlete တစ်ခုဖြစ်ပြီး stripspos များကိုထိထိရောက်ရောက်ရှာဖွေရန် strips များကို သုံးနိုင်သည်။
Stripos သည်အင်္ဂလိပ်အက္ခရာများသို့မဟုတ်ရိုးရှင်းသော ascii ကြိုးများနှင့်ဆက်ဆံရာတွင်သင့်တော်သောရွေးချယ်မှုဖြစ်သည်။
MB_Stropos သုံး. အခြေအနေများ -
string encoding သည် UTF-8, GBK, Big5 စသည်တို့ကဲ့သို့ Multi-byte ဖြစ်သည်။ ဥပမာအားဖြင့် mb_stropos ကိုမှန်ကန်စွာရှာဖွေရန် MB_Stropos ကို သုံးရန်လိုအပ်သည်။
တရုတ်, ဂျပန်နှင့်ကိုရီးယားကဲ့သို့သော byte အက္ခရာများပါ 0 င်သော strings များပြုလုပ်သောအခါ MB_Stropos ကို သုံးရမည်။
Strips သည်စွမ်းဆောင်ရည်အရပိုမိုပေါ့ပါးသည့်လုပ်ဆောင်မှုဖြစ်သည်။ သို့သော် Multibyte ဇာတ်ကောင် (UTF-8-encoded Chinese strings ကဲ့သို့သော) နှင့်ဆက်ဆံရာတွင် MB_Stripos သည် MB_Stropos လိုအပ်သည်။ ၎င်းသည် MBIBYTE ဇာတ်ကောင်များရှုပ်ထွေးမှုကြောင့်အနည်းငယ်နှေးကွေးသည်။
<?php
$haystack = "This is a test string.";
$needle = "test";
$position = stripos($haystack, $needle);
if ($position !== false) {
echo "Found '$needle' at position $position";
} else {
echo "Not found";
}
?>
<?php
$haystack = "မင်္ဂလာပါ,ကမ်ာဘ!";
$needle = "ကမ်ာဘ";
$position = mb_stripos($haystack, $needle);
if ($position !== false) {
echo "Found '$needle' at position $position";
} else {
echo "Not found";
}
?>
strips များသည် single-byte character sets (ဥပမာ ASCII ကဲ့သို့) နှင့်စွမ်းဆောင်ရည်ကောင်းရှိသည်။
MB_Stropos သည် Multibyte ဇာတ်ကောင်အစုံ (UTF-8, GBK စသည်တို့) အတွက် (UTF-8, GBK စသည်တို့) အတွက်သင့်တော်သည်။
အင်္ဂလိပ်သို့မဟုတ် ASCII ဇာတ်ကောင်များနှင့်ဆက်ဆံရာတွင် stripos သည်ပိုမိုထိရောက်သည်။ MB_Stropos သည်တရုတ်သို့မဟုတ်အခြားဘာသာစကားအမျိုးမျိုးနှင့်ဆက်ဆံသောအခါအသုံးပြုသည်။