mb_structut () mb_substr () နှင့်ကွဲပြားခြားနားသည်။ ၎င်းကိုစာလုံးများမဟုတ်ဘဲယူနစ်များတွင်ကြားဖြတ်နေသည်။ UTF-8 encoded strings များအတွက်တရုတ်ဇာတ်ကောင်သည်များသောအားဖြင့် 3 bytes ကိုယူသည်။ အကယ်. သင်သည်အလယ်၌ byte အနေအထားမှ string ကိုဖြတ်တောက်ပါက၎င်းသည်မပြည့်စုံသောစာလုံးများကိုဖြစ်ပေါ်စေပြီး output တွင်အမှိုက်များသို့မဟုတ်တရားမဝင်သောစာလုံးများကိုပြသနိုင်သည်။
ဥပမာအားဖြင့်:
$str = 'မင်္ဂလာပါ,ကမ်ာဘ';
$cut = mb_strcut($str, 0, 4, 'UTF-8');
echo $cut;
ဤကုဒ် output ၏ရလဒ်ကိုအမှိုက်ပုံရနိုင်ဖွယ်ရှိသည် ။ MB_SartCut သည် ပထမဆုံး 4 bytes ကိုကြားဖြတ်ပြီးဒုတိယဇာတ်ကောင်၏အစိတ်အပိုင်းကို "ကောင်းသော" ၏အစိတ်အပိုင်းတစ်ခုဖြစ်သော,
အကယ်. သင်သည်အထူးသဖြင့် byte-level control ကိုမလိုအပ်ပါက MB_Substr () ကို အသုံးပြုရန်အကြံပြုသည်။
$str = 'မင်္ဂလာပါ,ကမ်ာဘ';
$cut = mb_substr($str, 0, 2, 'UTF-8');
echo $cut; // ထုတ်လုပ်ခြင်း:မင်္ဂလာပါ
အကယ်. သင်သည် MB_STRANCT (ဥပမာအားဖြင့်သိုလှောင်မှုအရှည်အရှည်ကိုကန့်သတ်ရန်) ကိုသုံးရန်လိုပါက MB_strinlen () နှင့်ဇာတ်ကောင် encoding ကိုပိုမိုတိကျသောထိန်းချုပ်မှုအတွက်ပေါင်းစပ်ရန်လိုအပ်သည်။ သင်ပထမ ဦး ဆုံး MB_Substred () ကို အက္ခရာများရရန်ပထမ ဦး ဆုံးအသုံးပြုနိုင်သော, ထို့နောက် dyte အရှည်ထက်ကျော်လွန်ရှိမရှိဆုံးဖြတ်ရန် strlen () ကို သုံးနိုင်သည်။
function safe_mb_strcut($string, $start, $length, $encoding = 'UTF-8') {
$substr = '';
$i = 0;
$byteCount = 0;
while ($i < mb_strlen($string, $encoding)) {
$char = mb_substr($string, $i, 1, $encoding);
$charLen = strlen($char);
if ($byteCount + $charLen > $length) {
break;
}
$substr .= $char;
$byteCount += $charLen;
$i++;
}
return $substr;
}
$str = 'မင်္ဂလာပါ,ကမ်ာဘ';
$cut = safe_mb_strcut($str, 0, 6); // bytes စုစုပေါင်းအရေအတွက်ဖြစ်ပါတယ်6
echo $cut; // ထုတ်လုပ်ခြင်း:မင်္ဂလာပါ
MB_SERIES function ကိုအသုံးပြုသောအခါ, အတွင်းပိုင်းစာလုံး Encoding သည်သင်မျှော်လင့်ထားသည့်အရာ (UTF-8) ဟုသင်မျှော်လင့်ကြောင်းသတ်မှတ်ရန်သို့မဟုတ်အတည်ပြုရန်သေချာပါစေ။ သင်ကမ္ဘာလုံးဆိုင်ရာသတ်မှတ်ရန်အောက်ပါနည်းလမ်းများကိုသုံးနိုင်သည်။
mb_internal_encoding('UTF-8');
ထို့အပြင်၎င်းကိုအောက်ပါနည်းလမ်းများဖြင့်စစ်ဆေး။ debugged လုပ်နိုင်သည်။
echo mb_detect_encoding($str); // string encoding စစ်ဆေးပါ
ဖော်ပြချက်အောက်ရှိ URL ပါ 0 င်သည့်အကြောင်းအရာများကိုသင်စဉ်းစားလိုပါက URL ကိုမဖျက်ဆီးဘဲဘေးကင်းစွာကြားဖြတ်ရန်အထက်ပါနည်းလမ်းကိုသင်အသုံးပြုနိုင်သည်ဆိုပါစို့။ ဥပမာအားဖြင့်:
$str = 'ပိုမိုသိရှိလိုပါက ကျေးဇူးပြု. ကြည့်ရှုပါ:https://gitbox.net/docs/php-guide.html';
$cut = safe_mb_strcut($str, 0, 40);
echo $cut;
Output သည် URL ဖွဲ့စည်းပုံကိုမဖျက်ဆီးနိုင်ပါ။ အထူးသဖြင့်လူမှုရေးပလက်ဖောင်းအနှစ်ချုပ်,