Multibyte ဇာတ်ကောင် encoding နှင့်ဆက်ဆံရာတွင် PHP သည် iconv_strpos function ကို string တစ်ခုတွင် string တစ်ခု၏နောက်ဆုံးဖြစ်ပျက်မှုကိုရှာဖွေရန် ICONV_STRRPOS function ကိုထောက်ပံ့ပေးသည်။ UTF-8 ကဲ့သို့သော Multi-byte encoding ကို ကိုင်တွယ်ရန်အတွက်ဤလုပ်ဆောင်မှုသည်အထူးသဖြင့်အလွန်အရေးကြီးသည်။ သို့သော် PHP ဗားရှင်းအဆင့်မြှင့်တင်မှုများနှင့်အတူ IcONV_STRPOS ၏အပြုအမူသည်အသေးစိတ်အချက်အလက်များကိုပြောင်းလဲခြင်းနှင့်ဤကွဲပြားခြားနားမှုများကိုနားလည်ခြင်းသည် developer များအနေဖြင့်လိုက်လျောညီထွေဖြစ်အောင်ပြ issues နာများကိုရှောင်ရှားရန်အရေးကြီးသည်။
iconv_strrpos အသုံးပြုမှုသည် Strrpos နှင့်ဆင်တူသည်။ ၎င်း၏ function definition သည်အောက်ပါအတိုင်းဖြစ်သည် -
int iconv_strrpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = ini_get("iconv.internal_encoding") ]] )
$ haystack : ရှာဖွေရန် string ကို။
$ အပ် - တွေ့ရှိရမည့်အလွှာ။
$ Offset : Start Position ကိုရှာဖွေခြင်း (ပုံမှန်အားဖြင့် 0 င်သည်, အနုတ်နံပါတ်များကိုထောက်ပံ့သည်) ။
$ encoding : string encoding, default ကို iconv.internal_encoding ကနေယူသည်။
Return Value သည် $ အပ်များ ပေါ်လာသည့်အခါ (စာလုံးများ ကို အခြေခံသည့်အက္ခရာများ, bytes မဟုတ်) ကို အခြေခံ. နောက်ဆုံးပေါ်ဇာတ်ကောင်အနေအထားဖြစ်သည်။
ICONV_STRPOS သည် အော့ဖ်ဆန်သည့် parameters များကိုပြုပြင်သည့်အခါမတည်မငြိမ်ပြုမူသည်။ တစ်ခါတစ်ရံတွင်အနုတ်လက်ခဏာ offsets များသည်အလုပ်မလုပ်ပါ။
Default Encoding သည် iconv.internal_encoding ပေါ်တွင်မူတည်သည်။ အကယ်. ၎င်းသည်အတိအလင်းမသတ်မှတ်ပါက၎င်းသည် Multibyte encoding encoding encoding encoding ကိုကျရှုံးစေနိုင်သည်။
အချို့သော bug များသည် $ အပ် အရှည် 1 ထက်ကြီးသည့်အခါအခြို့သော function ကိုပြန်အမ်းရန်။
$ offset ကို ကိုင်တွယ်ခြင်းသည်ပိုမိုတိကျမှန်ကန်သည်, အနုတ်ကိန်းဂဏန်းများအထောက်အပံ့သည်ပြီးပြည့်စုံပြီးစာရွက်စာတမ်းဖော်ပြချက်နှင့်ကိုက်ညီသည်။
ပုံသေ encoding parameter တွေကိုအတိအလင်းဖြတ်သန်းသွားဖို့အကြံပြုထားပြီး configuration အပေါ်မှီခိုမှုကိုလျှော့ချရန်နှင့်ကွဲပြားခြားနားသောပတ်ဝန်းကျင်ကြောင့်ကွဲပြားခြားနားမှုများကိုရှောင်ရှားရန်အကြံပြုသည်။
$ အပ် Multibyte string ကိုက်ညီသည့်အခါပြန်လာသောသွေဖည်ခြင်း, စွမ်းဆောင်ရည်တိုးတက်မှုများကိုဖြေရှင်းနိုင်သည်။
PHP 7.2 ဗားရှင်းအချို့မတိုင်မီအစွန်အဖျား bug များတွင်အချို့သောအစွန်း bug များရှိနေသည်။ ပို. ယုံကြည်စိတ်ချရသောစွမ်းဆောင်ရည်အတွက် PHP 7.3+ သို့အဆင့်မြှင့်တင်ရန်အကြံပြုသည်။
IcONV_STRRPOS သည် မှန်ကန်သော encoding parameters များပေါ်တွင်မူတည်သည်။ $ encoding ကို အတိအလင်းဖြတ်ကျော်နိုင်အောင်သေချာအောင်လုပ်ပါ, အတိအလင်းရေးရန်အကြံပြုသည် -
$pos = iconv_strrpos($str, $needle, 0, 'UTF-8');
$ offset သည် bytes မဟုတ်ဘဲဇာတ်ကောင်အခြေပြုအညွှန်းကိန်းဖြစ်သည်။
အနုတ်လက်ခဏာအနေဖြင့် string ကိုအဆုံး၏အပြန်အလှန်မှတွက်ချက်မှုအမှတ်ကိုဖော်ပြသည်။
အစောပိုင်း PHP ဗားရှင်းများသည်အပျက်သဘောဆောင်သော offsets များအတွက်အထောက်အပံ့ညံ့ဖျင်းသောကြောင့်၎င်းတို့ကိုအသုံးပြုသောအခါဗားရှင်းနှင့်လိုက်ဖက်မှုကိုဂရုပြုသင့်သည်။
ဇာတ်ကောင်အနေအထားကို (0),
အကယ်. မှားယွင်းသော မရှာပါက မှားယွင်းစွာနှင့်မှားယွင်းသော 0 0 ကိုအကဲဖြတ်သည့်အခါ 0 0 ကိုအလွယ်တကူရှုပ်ထွေးနိုင်သည်။
if ($pos === false) {
echo "အဘယ်သူမျှမ substring တွေ့ရှိခဲ့ပါတယ်";
} else {
echo "တည်နေရာဖြစ်ပါတယ်: $pos";
}
$ အပ်များသည် Multibyte စာလုံးများပါ 0 င်သည့်အခါ PHP 7+ တွင် PHP 7+ သည်ပိုမိုတိကျသည်။ concled သို့မဟုတ် offset အမှားများကိုရှောင်ရှားရန် iconv_strpos အစား singleve string ကို functions များကိုရှောင်ပါ။
<?php
// ယူဆချက် $str တရုတ်များတွင်ပါဝင်သည်
$str = "ဤသည်စမ်းသပ်မှု string ကိုစမ်းသပ်ခြင်းဖြစ်ပါတယ်";
// PHP 7+ အကြံပြုစာအရေးအသား,ရှင်းရှင်းလင်းလင်း encoded
$needle = "စမ်းသပ်မှု";
$pos = iconv_strrpos($str, $needle, 0, 'UTF-8');
if ($pos !== false) {
echo "ဒါဟာပေါ်လာနောက်ဆုံးသောကာလဖြစ်ပါတယ်: $pos\n";
} else {
echo "အဘယ်သူမျှမ substring တွေ့ရှိခဲ့ပါတယ်\n";
}
ထုတ်လုပ်မှု -
ဒါဟာပေါ်လာနောက်ဆုံးသောကာလဖြစ်ပါတယ်: 8
ဗားရှင်းအဟောင်းတွေမှာ encoding မသတ်မှတ်ပါကအမှားတစ်ခုသို့မဟုတ် မှားယွင်းသောအမှား တစ်ခုဖြစ်နိုင်သည်။
IcONV_STRRPOS သည် Multibyte String processing တွင်မရှိမဖြစ်လိုအပ်သော function တစ်ခုဖြစ်သည်။ သို့သော်၎င်း၏အပြုအမူသည် PHP ဗားရှင်းနှင့် encoding settings ပေါ်တွင်မူတည်သည်။
ပုံမှန်ပြင်ဆင်မှုများကိုဆက်လက်မွမ်းမံခြင်းမှရှောင်ရှားရန်ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်းဖွံ့ဖြိုးတိုးတက်မှုအတွက်မိတ်ဆက်စာ encoding ကိုအတိအလင်းဖြတ်သန်းသင့်သည်။
အနုတ် $ offset တန်ဖိုးထောက်ခံမှုအတွက် PHP 7 သို့မဟုတ်အထက်ကိုသေချာစွာအသုံးပြုပါ။
0 င် နှင့် မှားယွင်းသော အကြားရှုပ်ထွေးမှုများကိုကာကွယ်ရန်ပြန်လာတန်ဖိုးကိုအသုံးပြုသောအခါတရားစီရင်ခြင်းကိုရိုက်ပါ။
PHP ဗားရှင်းကိုမှန်ကန်စွာလုပ်ဆောင်ရန် PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန် PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်နှင့်ဆက်နွှယ်သောလုပ်ဆောင်မှုများကိုလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ရန်အကြံပြုသည်။