PHP ပရိုဂရမ်တွင် stripss () သည်အလွန်အသုံးများသော strippos ရှာဖွေရေး function တစ်ခုဖြစ်သည်။ ၎င်းသည်စာလုံးအကြီးအပြင်းအထန်ချို့တဲ့ခြင်းမရှိဘဲပစ်မှတ် string တွင် string တစ်ခု၏ပထမအကြိမ်ဖြစ်ပျက်မှုကိုရှာဖွေရန်အသုံးပြုသည်။ ဘာသာစကားအမျိုးမျိုးပါ 0 င်သည့်အလုံးစုံနှင့်ချည်နှောင်ခြင်းနှင့်ဆက်ဆံရာတွင် developer များစွာသည်ပြ issue နာတစ်ခုနှင့် ပတ်သက်. ပြ one နာတစ်ခုနှင့် ပတ်သက်. စိုးရိမ်ပူပန်မှုများခံစားခဲ့ရသည်။
ဤဆောင်းပါးသည်ဤပြ issue နာကိုဆွေးနွေးပြီးနမူနာကုဒ်မှတဆင့်၎င်းကိုအတည်ပြုလိမ့်မည်။
stripsipos () ၏ function လက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
int|false stripos(string $haystack, string $needle, int $offset = 0)
$ haystack တွင် $ အပ် (0 င်) တွင်ပထမ ဦး ဆုံးပေါ်လာသည့်အနေအထားကိုပြန်ပို့သည် ။ ဤလုပ်ဆောင်ချက်သည်စာလုံးအကြီးအသေးအရေးမကြီးပါ။
$haystack = "Hello World!";
$needle = "world";
$pos = stripos($haystack, $needle);
echo $pos; // ထုတ်လုပ်ခြင်း 6
အဓိကမေးခွန်းမှာ - ဒေါ်လာသည် ဒေါ်လာအလောင်းအစား သို့မဟုတ် $ အပ် (ဒေါ်လာအပ်) တွင်တရုတ်နိုင်ငံတွင်တိကျစွာကိုက်ညီနိုင်ပါသလား။
အဖြေမှာ - ၎င်းသည်ပုံမှန်အားဖြင့်ကိုက်ညီနိုင်သော်လည်း string ၏ encoding ကိုအာရုံစိုက်ပါ။
PHP ၏ strips () strips () ကိုဇာတ်ကောင်အဆင့်များပေါ်တွင်အခြေခံသည်မဟုတ်ဘဲ bytes ပေါ်တွင်အခြေခံသည်။ ဆိုလိုသည်မှာ UTF-8-encoded တရုတ် ကြိုး များကိုအသုံးပြုသောအခါ utf-8-encoded တရုတ်ကြိုးများပြုလုပ်ရန်အတွက် $ အပ်သည် တရုတ်လူမျိုးများပါ 0 င်ပါ က,
ဥပမာအနည်းငယ်မှတစ်ဆင့်တရုတ်၏အပြုအမူကိုစမ်းသပ်ကြပါစို့။
// UTF-8 encoded string ကို
$haystack = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66.net ဝဘ်0င်းက္ပုဒ်စာတမ်း";
$needle = "m66.net";
// အင်္ဂလိပ်ကိုရှာပါ
$pos = stripos($haystack, $needle);
echo $pos !== false ? "ရှာဖေှ,တည်နေရာဖြစ်ပါတယ်:$pos" : "မတွေ့ပါ"; // ထုတ်လုပ်ခြင်း:ရှာဖေှ,တည်နေရာဖြစ်ပါတယ်:5
// တရုတ်ကိုရှာပါ
$haystack = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66.net ဝဘ်0င်းက္ပုဒ်စာတမ်း";
$needle = "ဝဘ်0င်းက္ပုဒ်စာတမ်း";
$pos = stripos($haystack, $needle);
echo $pos !== false ? "ရှာဖေှ,တည်နေရာဖြစ်ပါတယ်:$pos" : "မတွေ့ပါ"; // ထုတ်လုပ်ခြင်း:ရှာဖေှ,တည်နေရာဖြစ်ပါတယ်:15
သင်မြင်သည့်အတိုင်း stripsipos () သည် ပုံမှန်အားဖြင့်အင်္ဂလိပ်သို့မဟုတ်တရုတ်ကိုရှာဖွေနေသည်ဖြစ်စေပုံမှန်အားဖြင့်အလုပ်လုပ်သည်။
Strips () သည် များသောအားဖြင့်တရုတ်များနှင့်သက်ဆိုင်သောပြ problem နာမရှိပါကသတိပြုရန်အချက်များအများအပြားရှိနေသေးသည်။
string encoding သည်တသမတ်တည်းဖြစ်ကြောင်းသေချာစေရန် - PHP defaults သည် bytes နှင့်ကိုက်ညီရန်။ $ haystack သည် UTF-8 နှင့် $ အပ် သည် GB2312 နှင့်အခြား encoding formats ဖြစ်လျှင်၎င်းသည်ကိုက်ညီမှုမရှိသောကြောင့်ဖြစ်သည်။
multi-byte strings များပြုလုပ်သောအခါ MB_Strepos () ကိုအသုံးပြုရန်အကြံပြု သည် ။
ဥပမာ -
$haystack = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66.net ဝဘ်0င်းက္ပုဒ်စာတမ်း";
$needle = "ဝဘ်0င်းက္ပုဒ်စာတမ်း";
$pos = mb_stripos($haystack, $needle, 0, 'UTF-8');
echo $pos !== false ? "ရှာဖေှ,တည်နေရာဖြစ်ပါတယ်:$pos" : "မတွေ့ပါ";
တရုတ်ပါဝင်သော stripts () ပါ 0 င်သော string တစ်ခုတွင်ပါ 0 င်ခြင်းရှိမရှိဆုံးဖြတ်ရန် strips များ () encoding သည်မှန်ကန်ပါကအချို့သောအလွှာ တစ်ခုသည်ကိုက်ညီသောအမှားတစ်ခုမဟုတ်ပါ ။ သို့သော်ဘာသာစကားကောင်းလိုသောသဟဇာတဖြစ်ခြင်းအတွက်သင်၏စီမံကိန်းတွင် MB_Stropos () ကို အသုံးပြုရန်အကြံပြုသည်။
မည်သို့ပင်ဖြစ်စေ, မလိုအပ်သောအခက်အခဲများကိုရှောင်ရှားရန်ကြိုးမဲ့ encoded (များသောအားဖြင့် UTF-8) ကိုအမြဲတမ်းသိမ်းထားပါ။