လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Matibyte Strings ကိုကြားဖြတ်ရန် MB_StrCut ကိုမည်သို့အသုံးပြုရမည်နည်း

Matibyte Strings ကိုကြားဖြတ်ရန် MB_StrCut ကိုမည်သို့အသုံးပြုရမည်နည်း

gitbox 2025-05-31

MB_StrCut သည် PHP တွင်တရုတ်, ဂျပန်, ကိုးရီးယားစသည်တို့ကဲ့သို့ Multibyte ဇာတ်ကောင်များနှင့်ဆက်ဆံရာတွင်အလွန်လက်တွေ့လုပ်ဆောင်ချက်ဖြစ်သည်။ Substre နှင့်မတူဘဲ၎င်းသည် Multi-byte အက္ခရာများကိုဖြတ်တောက်မည်မဟုတ်ကြောင်း, Multi-byte strings များကိုကြားဖြတ်ရန် MB_structcut ကို မည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ mb_structnut နှင့် mb_substrin အကြားခြားနားချက်

သင်မစခင် MB_SstrCut နှင့် MB_Substrin အကြားခြားနားချက်ကိုအတိုချုပ်နားလည်ကြပါစို့။

  • MB_substrintr သည်အက်ခရာအရေအတွက်ဖြင့်ကြားဖြတ်နေသည်။

  • MB_StrCTRCT ကို byte အရှည်ဖြင့်ကြားဖြတ်ထားသော်လည်းဇာတ်ကောင်များကိုဖြတ်တောက်ခြင်းမဟုတ်ကြောင်းသေချာစေမည်။

  • နှစ် ဦး စလုံးထောက်ခံသတ်မှတ်ထားသောဇာတ်ကောင် encoding ။

ဆိုလိုသည်မှာ MB_StrCut သည် Byte အဆင့်တွင်စာသားကိုပြုပြင်ခြင်းအတွက်ပိုမိုသင့်တော်သည်,

2 ။ mb_strcut function ကို syntax

 string mb_strcut(string $string, int $start, int $length = null, string $encoding = null)
  • $ string : လုပ်ငန်းများ၌ခံရဖို့ string;

  • $ Start : START ရာထူး (bytes အားဖြင့်တွက်ချက်သည်);

  • $ အရှည် : ကြားဖြတ်ခံရဖို့ bytes အရေအတွက်,

  • $ encoding : (UTF-8, GBK စသဖြင့်) ဇာတ်ကောင် encoding (ဥပမာ UTF-8, GBK စသည်), optional ကို။

3 ။ ဥပမာကိုသုံးပါ

ဥပမာ 1 - အခြေခံအသုံးပြုမှု

 <?php
$str = "မင်္ဂလာပါ,ကမ်ာဘ!";
$result = mb_strcut($str, 0, 6, "UTF-8");
echo $result; // ထုတ်လုပ်ခြင်း:မင်္ဂလာပါ
?>

ရှင်းလင်းချက် - UTF-8 encoding အောက်ရှိတရုတ်ဇာတ်ကောင်တစ် ဦး ချင်းစီသည် 3 bytes များကို အသုံးပြု. 6 Bytes သည်တရုတ်စာလုံးနှစ်စောင်ဖြစ်သည်။

ဥပမာ 2: အမှိုက်များ code ကိုတားဆီးပါ

အကယ်. သင်သည်တရုတ်နိုင်ငံကိုကြားဖြတ်ရန် Substrat ကို သုံးရန်အသုံးပြုပါက,

 <?php
$str = "မင်္ဂလာပါ,ကမ်ာဘ!";
echo substr($str, 0, 5); // 可能ထုတ်လုပ်ခြင်း乱码
?>

ဤပြ problem နာကိုရှောင်ရှားရန် MB_Strcut သို့ပြောင်းပါ။

 <?php
$str = "မင်္ဂလာပါ,ကမ်ာဘ!";
echo mb_strcut($str, 0, 5, "UTF-8"); // ထုတ်လုပ်ခြင်း:ခင်ဗျားတို့
?>

ဥပမာ 3: ဒေတာဘေ့စ်သို့မဟုတ်စာမျက်နှာနှင့် တွဲဖက်. ပြသပါ

ဆောင်းပါးအကျဉ်းချုပ်ကိုသင်ကြားဖြတ်ရန်လိုအပ်သည့်အခါ, အောက်ပါနည်းလမ်းကိုသင်အသုံးပြုနိုင်သည်။

 <?php
$content = "ကျွန်ုပ်တို့၏တရားဝင်ဝက်ဘ်ဆိုက်မှကြိုဆိုပါသည်:https://gitbox.net/blog/php-mb_strcut-use";
$summary = mb_strcut($content, 0, 60, "UTF-8");
echo $summary . "...";
?>

၎င်းသည်ကွန်ရက်စာမျက်နှာတွင် concled code မပါ 0 င်သည့်ဝက်ဘ်စာမျက်နှာတွင်သတ်မှတ်ထားသောအရှည်အကျဉ်းချုပ်ကိုလုံခြုံစွာဖော်ပြလိမ့်မည်။

4 ။ သင့်လျော်သောကြားဖြတ်မှုအရှည်ကိုမည်သို့ဆုံးဖြတ်ရမည်နည်း။

ကွဲပြားခြားနားသော encodings အောက်တွင်ကွဲပြားခြားနားသော byte အရှည်ကိုကွဲပြားသော Byte စာလုံးများကိုအသုံးပြုပြီး MB_strlen နှင့် MB_Strcut ကို dynamic processing အတွက်အသုံးပြုရန်အကြံပြုသည်။

 <?php
function safe_cut($str, $maxBytes, $encoding = "UTF-8") {
    return mb_strcut($str, 0, $maxBytes, $encoding);
}
?>

၎င်းသည် byte ကန့်သတ်ပြောင်းလွယ်ပြင်လွယ်များကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။

 echo safe_cut("ဒါPHPstring ကိုအပြောင်းအလဲနဲ့ဥပမာ", 9); // ထုတ်လုပ်ခြင်း:ဒါ

5 ။ မှတ်စုဖို့အရာ

  • MB_STRANCT သည် byte-level စစ်ဆင်ရေးတစ်ခုဖြစ်သည်။ ထို့ကြောင့်အချက်အလက်များကိုသိုလှောင်ခြင်းသို့မဟုတ်ထုတ်လွှင့်သောအခါအထူးသဖြင့်တိကျသောထိန်းချုပ်မှုအတွက်သင့်လျော်သည်။

  • ၎င်းသည် HTML encoding သို့မဟုတ် filter strings များမဟုတ်ဘဲ htmlspecialchars ကဲ့သို့သောလုပ်ဆောင်ချက်များနှင့်ပေါင်းစပ်ရန်လိုအပ်သည်။

  • ဆာဗာတွင် mbstring extension ကိုဖွင့်ထားပြီး Phpinfo () မှတဆင့်ကြည့်ရှုနိုင်ကြောင်းသေချာပါစေ။

6 ။ နိဂုံးချုပ်

MB_StrCutut သည် PHP တွင် Multibyte strings များကိုကိုင်တွယ်ရန်အတွက်အထူးသဖြင့် byte အရှည်ကိုတိကျသောထိန်းချုပ်မှုလိုအပ်သည့်အခြေအနေများအတွက်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ ကျိုးကြောင်းဆီလျော်စွာအနေအထားနှင့်အရှည်များကိုချိန်ညှိခြင်းနှင့် coding settings များကိုပေါင်းစပ်ခြင်းအားဖြင့်၎င်းသည်အမှိုက်များ code ပြ problems နာများကိုအလွယ်တကူရှောင်ရှားနိုင်ပြီးအစီအစဉ်၏ကြံ့ခိုင်မှုကိုတိုးတက်စေသည်။ MB_StrCut ကို ဖွံ့ဖြိုးတိုးတက်မှုအတွက်အပြည့်အဝအသုံးချပါ။