PHP တွင် Substr_Count () function ကိုကျယ်ကျယ်ပြန့်ပြန့်သည် string တစ်ခုတွင်အကြိမ်အရေအတွက်ကိုတွက်ချက်ရန်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ ASCII ဇာတ်ကောင်များနှင့်ဆက်ဆံရာတွင်အလွန်ထိရောက်နိုင်သည်မှာ UTF-8 ကဲ့သို့သော Multi-byte character encodings နှင့်ရင်ဆိုင်ရသောအခါမမျှော်လင့်သောရလဒ်များရနိုင်သည်။ ဤဆောင်းပါးသည် Multibyte ဇာတ်ကောင် encoding နှင့်ဆက်ဆံရာတွင် Substr_Count () လက်တွေ့ကျွမ်းကျင်မှုဆိုင်ရာကျွမ်းကျင်မှုများကိုမိတ်ဆက်ပေးလိမ့်မည်။
Substr_count () ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<code> int substr_count (string $ haystack, string $ အပ် [, int $ offset =)) </ code>ဒီ function ကို $ haystack အတွက် $ အပ် ငွေပမာဏပေါ်လာလိမ့်မယ်။ သတိပြုသင့်သည်မှာ၎င်းသည် strings များကို bytes များမှပြုလုပ်သော function များကိုပြုလုပ်ပြီးဇာတ်ကောင်နယ်နိမိတ်များကိုအသိအမှတ်မပြုပါ။
ဥပမာအားဖြင့်, သင်သည် "သင်" သည် string တစ်ခုတွင်ရှိသည့်တရုတ်ဇာတ်ကောင်ကိုအကြိမ်အရေအတွက်ရေတွက်ရန်ကြိုးစားပါကအမှားတစ်ခုရနိုင်သည်။
<code> $ str = "မင်္ဂလာပါ, မင်းတကယ်ကောင်းတယ်" echo substr_count ($ str, "", // output ကိုမမှန်ကန်ပါ။ </ code>အကြောင်းပြချက်မှာတရုတ် "သင်" သည် UTF-8 တွင်သုံးခုရှိသည့်သုံးခု, ဤအခြေအနေသည်ကိုက်ညီသောအမှားများသို့မဟုတ်ပျောက်ဆုံးနေသောနံပါတ်များကိုအလွယ်တကူ ဦး ဆောင်နိုင်သည်။
PHP တွင်အထူး mb_substr_count () function ကိုမရှိသော်လည်း MB_Substr () နှင့် MB_Strlen ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းဖြင့်အလားတူသက်ရောက်မှုများကိုရရှိနိုင်ပါသည်။
ဥပမာအားဖြင့်, သင်သည် MB_SPLIT ကို သုံး. string ကိုခွဲထုတ်ရန်နှင့်ဖြစ်ပျက်မှုအရေအတွက်ကိုရေတွက်ရန်အသုံးပြုနိုင်သည်။
<code> $ str = "မင်္ဂလာပါ, မင်းတကယ်ကောင်းတယ်" $ ar arr = mb_split ("သင်", $ str); $ ရေတွက် = ရေတွက် ($ arr) - 1; ECHO $ ရေတွက်; // မှန်ကန်သော output 2 </ code>>ဤနည်းအားဖြင့် Byte အဆင့် Misjudgment ၏ပြ problem နာကိုရှောင်ရှားပြီး Multi-byte encoding အတွက်သင့်တော်သည်။
နောက်ထပ်ဘုံနည်းလမ်းမှာ UTF-8 MORFIER နှင့် PREG_MATCH_ALL () ကို အသုံးပြုရန်ဖြစ်သည်။
<code> $ str = "မင်္ဂလာပါ, မင်းတကယ်ကောင်းတယ်" Preg_Match_all ('/ un / u', $ str, $ ကိုက်ညီခြင်း); ECHO အရေအတွက် ($ ကိုက်ညီမှု [0]); // output 2 </ code>/ u Modifier ဤနေရာတွင် UTF-8 mode ကိုသုံးရန် Regengine ကို Todes ကိုသုံးရန်ပြောလိုက်သည်။ ထို့ကြောင့် "သင်" ကိုဇာတ်ကောင်အဖြစ်မှန်ကန်စွာအသိအမှတ်ပြုသည်။
အကယ် . သင် URL ပါ 0 င်သည့် string တစ်ခုပါ 0 င်ပါက URL တွင်တရုတ်လမ်းကြောင်းများသို့မဟုတ် parameters များပါ 0 င်သည်။ ဥပမာအားဖြင့်:
<code> $ url = "" https://gitbox.net/hello/hello.html "; $ decoded = urldecode ($ URL); Preg_match_all ('/ မင်္ဂလာပါ / u', $ decoded, $ ကိုက်ညီ; ECHO အရေအတွက် ($ ကိုက်ညီမှု [0]); // output 2 </ code>၎င်းသည် URL encoding ပြီးနောက်တရုတ်မှဝင်ရောက်စွက်ဖက်မှုကိုရှောင်ရှားနိုင်သည်။
Substr_count () သည် Multibyte ဇာတ်ကောင် encoding အတွက်မသင့်တော်သော်လည်း၎င်းကိုအောက်ပါနည်းစနစ်များကထိရောက်စွာလျော်ကြေးပေးနိုင်သည်။
MB_SPLIT () split နှင့်ရေတွက်ရန်
PREG_MATCH_ALLALL () နှင့်အတူ / u Modifier နှင့်ကိုက်ညီရန်ပုံမှန်အသုံးအနှုန်းများကိုသုံးပါ
URL ကိုအပေါ် preprocessing urldecode () ကို လုပ်ဆောင်ပါ
Substr_Count () ကို မသုံးပါနှင့်တရုတ်, ဂျပန်နှင့်ကိုရီးယားတို့စသည့် byte စာလုံးများကိုအကြိမ်ကြိမ်ခွဲခြမ်းစိတ်ဖြာခြင်းကိုတိုက်ရိုက်ရှောင်ကြဉ်ပါ
ဤကျွမ်းကျင်မှုများကိုကျွမ်းကျင်ခြင်းသည်ဘာသာစကားမျိုးစုံ 0 ဘ်ဆိုဒ်များ ကို တီထွင်ခြင်း,