PHP Development တွင် Multi-byte strings များ (တရုတ်, ကိုးရီးယားနှင့်အခြားဇာတ်ကောင်များပါ 0 င်သောကြိုးများကဲ့သို့သောလုပ်ရပ်များကို ) ကိုင်တွယ်ဖြေရှင်းသည့်အခါ, Multibyte ဇာတ်ကောင်အစုံကိုပိုမိုကောင်းမွန်စေရန် PHP သည် iconv_strrpos () function ကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည်အခြေခံကျသောအသုံးပြုမှု, parameter ၏အဓိပ္ပာယ်နှင့်အသေးစိတ်အချက်အလက်များအားအသေးစိတ်အချက်အလက်များကိုအသေးစိတ်ဖော်ပြရန်, သင် encoding string အတွင်းရှိနောက်ဆုံးတည်နေရာကိုမှန်ကန်စွာရှာဖွေရန်ကူညီပေးပါမည်။
iconv_strrpos () သည် iconv extension တွင် substring တစ်ခုတွင်အလွှာတစ်ခုတွင်တွေ့ရမည့်နောက်ဆုံးအကြိမ်ကိုရှာဖွေရန် ICONV extension တွင် function တစ်ခုဖြစ်သည်။ Strrpos နှင့် မတူဘဲ၎င်းသည် Multibyte Encoding နှင့်ဆက်ဆံရာတွင်ဇာတ်ကောင်နယ်နိမိတ်များကိုပိုမိုတိကျစွာခွဲခြားသိမြင်နိုင်သည်။
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">iconv_strrpos</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span> [, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$charset</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ini_get</span></span><span>(</span><span><span class="hljs-string">"iconv.internal_encoding"</span></span><span>)] )
</span></span>
$ haystack : ရှာဖွေရန်ပစ်မှတ် string ကို။
$ အပ် - တွေ့ရှိရမည့်အလွှာ။
$ charset (optional): string ကို၏ set encoding character ကိုဖေါ်ပြပါ။ မသတ်မှတ်ပါက iconv.internal_encoding setting ကိုပုံမှန်အားဖြင့်အသုံးပြုသည်။
ပြန်လည်ရောက်ရှိသည့်နောက်ဆုံးအကြိမ် $ အပ် သည် $ haystack (0 င်မှ စ. အော့အ 0 ယ်ခြင်း) နှင့်မတွေ့ရှိပါက မှားယွင်းစွာ ပြန်ရောက်သည်။
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"hello world, welcome to the world of PHP"</span></span><span>;
</span><span><span class="hljs-variable">$pos</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_strrpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">"world"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$pos</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 27</span></span><span>
</span></span>
ဤဥပမာတွင် string "World" ပေါ်လာသည့်နောက်ဆုံးအကြိမ်အညွှန်း 27 ဖြစ်သည်။
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ。မင်္ဂလာပါ,PHP。"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ"</span></span><span>;
</span><span><span class="hljs-variable">$pos</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_strrpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$pos</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 6(ဒုတိယညွှန်ပြ“မင်္ဂလာပါ”Multibyte အောက်မှာဇာတ်ကောင် offset အနေအထား)</span></span><span>
</span></span>
မှတ်စု: အကယ်. သင်သည် Strrpos () ကို အသုံးပြုပါကဤ string ကိုလုပ်ဆောင်ရန်အသုံးပြုပါက၎င်းသည်မှားယွင်းသောရလဒ်များသို့မဟုတ် carbled code များဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့်, တရုတ်ကိုပြုပြင်သည့်အခါသင် encoding ကိုအတိအလင်းဖော်ပြရမည်။
လုပ်ဆောင်ချက် | Multibyte ကိုထောက်ခံပါသလား။ | အကြံပြုအခြေအနေများ |
---|---|---|
strrpos () | မဟုတ် | single-byte string ကို (ထိုကဲ့သို့သော ASCII အဖြစ်) |
iconv_strpos () | ဟုတ်ကဲ့ | Multi-byte ကြိုးများ (UTF-8, GBK) |
အကယ်. သင်သည် UTF-8 encoded content (ဥပမာဝက်ဘ်ဆိုက်များ၏ဘာသာစကားမျိုးစုံကဲ့သို့သောစာမျက်နှာများ) နှင့်ဆက်ဆံနေပါက ICONV_STRRPOS () ကို အသုံးပြုခြင်းသည်မသင့်လျော်သောဇာတ်ကောင်နယ်နိမိတ်ကြောင့်ပြ problems နာများကိုရှောင်ရှားရန်အထူးအကြံပြုလိုပါသည်။
အက်ခရာအစုတခုကိုသတ်မှတ်ရန်အရေးကြီးသည် - အကယ်. သင်သည် $ charset ကို အတိအလင်းမဖော်ပြပါက PHP သည်သင်အမှန်တကယ်အသုံးပြုနေသော string encoding နှင့်မကိုက်ညီသော default iconv.internal_encoding ကို အသုံးပြုသည်။
ICONV extension ကိုသေချာအောင်လုပ်ပါ ။ ဤလုပ်ဆောင်ချက်သည် ICONOV extension တစ်ခုဖြစ်ပြီးပုံမှန်အားဖြင့် PHP ဖြင့် PHP ဖြင့်ဖွင့်ထားသော်လည်းအချို့သောစိတ်ကြိုက်ပတ်ဝန်းကျင်တွင်ကိုယ်တိုင်ဖွင့်ထားရန်လိုအပ်သည်။
ဒီအနေအထားဟာ byte offset မဟုတ်တဲ့ဇာတ်ကောင် offset ကိုပြန်ပို့တယ် ။ ဒီဟာက byte encoding အတွက်အရမ်းအရေးကြီးတယ်,
ICONV_STRRPOS () () Multibyte ကြိုးနှင့်ဆက်ဆံရာတွင်အလွန်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ဇာတ်ကောင်နယ်နိမိတ်များကိုမှန်ကန်စွာဖော်ထုတ်နိုင်ပြီး developer များရှာဖွေတွေ့ရှိသူများ၏တည်နေရာကိုတိတိကျကျရှာဖွေနိုင်သည်။ အထူးသဖြင့်တရုတ်သို့မဟုတ်အခြား apcii မဟုတ်သောဇာတ်ကောင်များနှင့်ဆက်ဆံရာတွင်ဤလုပ်ဆောင်မှုကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်အစီအစဉ်၏တည်ငြိမ်မှုနှင့်နိုင်ငံတကာ၏လိုက်ဖက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။
UTF-8 encoded content ကိုသင်ရင်ဆိုင်ရတိုင်း strrpos အစား iconv_strrpos () ကို သုံးပါ () မလိုအပ်သောပြ problems နာများကိုရှောင်ရှားရန်အတိအလင်းသတ်မှတ်ထားသည့်ဇာတ်ကောင်ကိုဖော်ပြရန်အမြဲသတိရပါ။