: default encoding သည်သင်၏ string ကိုအမှန်တကယ် encoding မဟုတ်,
Intercept အရှည်သည်အမှန်တကယ်ဇာတ်ကောင်အရေအတွက်ထက်ကျော်လွန်သည် - ကြားဖြတ်အနေအထားသည်ကြိုး၏အရှည်ထက်ကျော်လွန်သောအခါအမှားတစ်ခုရှိသည်။
အဆိုပါ string ကိုယ်နှိုက်ကကိုက်ညီသို့မဟုတ်အကျင့်ပျက်ခြစားမှုဖြစ်ပါတယ် ။
encoding ကိုခွဲခြားသတ်မှတ်
<span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-string">'UTF-8'</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$offset</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span></span>
ကြားဖြတ်သည့်အရှည်နှင့် offset သည် bytes မဟုတ်ဘဲဇာတ်ကောင်များအပေါ်အခြေခံထားကြောင်းသေချာပါစေ
iconv_substred ၏ $ Offset နှင့် $ အရှည် သည် character count များမဟုတ်ဘဲ string သည်သတ်မှတ်ထားသော encoding ဖြစ်ရမည်။
ကြိုတင်အတွက် string အရှည် detect
နယ်စပ်ဖြတ်ကျော်မှုကိုရှောင်ရှားရန် string ကိုအရှည်ကိုဆုံးဖြတ်ရန် iCONV_STRANLEN ကို သုံးပါ။
<span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_strlen</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$offset</span></span><span> > </span><span><span class="hljs-variable">$length</span></span><span>) {
</span><span><span class="hljs-comment">// offsets နှင့် Cross ကန့်သတ်ကိုင်တွယ်</span></span><span>
}
</span></span>
အမှားကိုင်တွယ်
ICONV_Substr တွင် အမှားတစ်ခုဖြစ်ပါက၎င်းသည် မှားယွင်းသော ပြန်လာနိုင်သည်။ ကောင်းသောတရားကိုကျင့်သောသူ,
<span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$offset</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-comment">// ထုတ်ယူခြင်းကြားဖြတ်ပျက်ကွက်,ပရိုဂရမ်ခြွင်းချက်များကိုရှောင်ပါ</span></span><span>
}
</span></span>
အခြားရွေးချယ်စရာတစ်ခုအဖြစ် Mbstring function ကိုသုံးပါ
MB_Substrintr သည် IconV_substr ကို အစားထိုးလေ့ရှိပြီးများသောအားဖြင့်အသုံးပြုသော Multi-byte-safe string intercept function ဖြစ်သည်။
<span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$offset</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span></span>
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"ဒီစမ်းသပ်မှု string ကိုဖြစ်ပါတယ်,သရုပ်ပြသည် iconv_substr အသုံးရောင်。"</span></span><span>;
</span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-string">'UTF-8'</span></span><span>;
</span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">3</span></span><span>;
</span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-number">5</span></span><span>;
</span><span><span class="hljs-variable">$totalLength</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_strlen</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$offset</span></span><span> > </span><span><span class="hljs-variable">$totalLength</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Intercept ၏ start အနေအထားသည် string အရှည်ထက်ကျော်လွန်သည်。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$substr</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$offset</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$substr</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"string ကြားဖြတ်ပျက်ကွက်,coding ပြ problems နာများရှိနိုင်ပါသည်。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ရလဒ်များကိုကြားဖြတ်:"</span></span><span> . </span><span><span class="hljs-variable">$substr</span></span><span>;
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>