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

PHP မှတရုတ်ကြိုးများကိုကြားဖြတ်ခြင်းအတွက်မှန်ကန်သောနည်းလမ်းများနှင့်နည်းစနစ်များအသေးစိတ်ရှင်းလင်းချက်

gitbox 2025-07-28

PHP တွင်တရုတ်ကြိုးများကိုကြားဖြတ်ရန်အတွက်ဘုံနည်းလမ်းများ

လူကြိုက်များသောဆာဗာဘက်ဘာသာစကားတစ်ခုအနေဖြင့် PHP သည်များသောအားဖြင့်သံကြိုးများကိုကြားဖြတ်လိုအပ်သည်။ ဘာဖြစ်လို့လဲဆိုတော့တရုတ်ဇာတ်ကောင်တွေက bytes မျိုးစုံကိုသိမ်းပိုက်လို့ပဲ, ဤဆောင်းပါးသည်ဤပြ problem နာကိုအလွယ်တကူဖြေရှင်းနိုင်ရန်ကူညီရန်တရုတ်ကြိုးများကိုကြားဖြတ်ရန်တရုတ်ကြိုးများကိုကြားဖြတ်ခြင်းနည်းလမ်းများစွာကိုမျှဝေပါမည်။

တရုတ် string ကိုကြားဖြတ်ရန် MB_Substr () function ကိုသုံးပါ

PHP ၏ built-in mob_substr () function ကို Multi-byte အက္ခရာများအတွက်ဒီဇိုင်းပြုလုပ်ထားပြီးတရုတ်ကြိုးများကိုတိကျစွာကြားဖြတ်နိုင်သည်။ ၎င်းသည်အက်ခရာအရေအတွက်အပေါ် အခြေခံ. ကြားဖြတ်ဖြတ်တောက်သည်။ ရိုးရှင်းသော bytes အရေအတွက်မဟုတ်ပါ။

လုပ်ဆောင်ချက်အသုံးပြုမှုဥပမာ:

 <span class="fun">MB_Substr (string $ start, int $ land, int $ +, string $ charset = &#39;utf-8&#39;): string ကို string</span>

parameter သည်ဖော်ပြချက်:

  • $ str : ကြားဖြတ်ခံရဖို့ string ကို။
  • $ start : ဇာတ်ကောင်အညွှန်းကိန်းအပေါ်အခြေခံပြီးအစအနေအထား, 0 အစမှတ်ဖြစ်ပါတယ်။
  • $ အရှည် : အရှည်ကြားဖြတ်။
  • $ charset : အက်ခရာ encoding, utf-8 မှ default ။

နမူနာကုဒ်:

 $str = "PHPတရုတ်ကြိုးတွေကြားဖြတ်";
$substr = mb_substr($str, 0, 6);
echo $substr;  // ထုတ်လုပ်ခြင်း:"PHPကြားဖြတ်"

ပုံမှန်အသုံးအနှုန်းတွေမှတဆင့်တရုတ်ဇာတ်ကောင်ကိုကြားဖြတ်

built-in functions များအပြင်ပုံမှန်အသုံးအနှုန်းများကိုပုံမှန်အသုံးအနှုန်းများကိုတရုတ်စာလုံးများကိုကြားဖြတ်ရန် (1match) ကို ပေါင်းစပ်ရန်အသုံးပြုနိုင်သည်။ ပုံမှန်အသုံးအနှုန်းများသည်ယူနီကုတ်တရုတ်စာလုံးများကိုသတ်မှတ်ထားသောအကွာအဝေးတွင်ယူမှတ်နိုင်သည်။

နမူနာကုဒ်:

 $str = "PHPတရုတ်ကြိုးတွေကြားဖြတ်";
preg_match('/^([\x{4e00}-\x{9fa5}]+)/u', $str, $matches);
echo $matches[1];  // ထုတ်လုပ်ခြင်း:"PHP"

Custom Functions များသည်တရုတ် string ကြားဖြတ်ကိုအကောင်အထည်ဖော်သည်

ပိုမိုပြောင်းလွယ်ပြင်လွယ်သောကြားဖြတ်သည့်ယုတ္တိဗေဒလိုအပ်ပါက fellentception ကို Ellipsis နှင့်ဆက်သွယ်မှုအကျိုးသက်ရောက်မှုကိုရရှိရန် functions များကိုစိတ်ကြိုက်ပြုလုပ်နိုင်ပြီး MB_strinlen () နှင့် MB_Substr () ကိုပေါင်းစပ်နိုင်သည်။

 function substr_cn($str, $length) {
    $len = mb_strlen($str, 'UTF-8');
    if ($len > $length) {
        $str = mb_substr($str, 0, $length, 'UTF-8') . '...';
    }
    return $str;
}

$str = "PHPတရုတ်ကြိုးတွေကြားဖြတ်";
$substr = substr_cn($str, 6);
echo $substr;  // ထုတ်လုပ်ခြင်း:"PHPကြားဖြတ်..."

မှတ်သားရန်အရာ

အထက်ပါနည်းလမ်းများကိုအသုံးပြုသောအခါအောက်ပါအချက်များကိုဂရုပြုရန်လိုအပ်သည်။

  • အက်ခရာ encoding မှန်ကန်ကြောင်းသေချာပါစေ။ default encoding ကို MB_Internal_encoding ('UTF-8') မှတဆင့်သတ်မှတ်နိုင်သည်။ ကိုက်ညီမှုမရှိသော encoding ကြောင့်ဖြစ်ရတဲ့ကြားဖြတ်အမှားများကိုရှောင်ရှားရန်။
  • တရုတ်စာလုံးများ၏ byte အင်္ဂါရပ်များသည် strlen () ကဲ့သို့သော byte လုပ်ဆောင်ချက်များကိုရှောင်ရှားသည်။ string ၏အရှည်တွက်ချက်မှုကိုတွက်ချက်ရန် MB_strinlen () ကို အသုံးပြုရန်အကြံပြုသည်။
  • ကြားဖြတ်သည့်အခါ, အစအနေအထားနှင့်အရှည်သည် bytes ထက်အက္ခရာများအပေါ်အခြေခံထားကြောင်းသေချာစေရန်အတွက်စာလုံးများကိုမဖြတ်ရန်နှင့်အမှိုက်သရိုက်များမဖြစ်စေနိုင်ပါ။

အကျဉ်းချုပ်

တရုတ်ကြိုးများကြားဖြတ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဘုံနှင့်အရေးပါသောလိုအပ်ချက်ဖြစ်သည်။ built-in mob_substred () function ကိုမှတဆင့်, ပုံမှန်စကားရပ်ကိုက်ညီမှုနှင့်ထုံးစံအတိုင်း functions, တရုတ် strings ၏ကြားဖြတ်ချက်အာရုံစူးစိုက်မှုကပြောင်းလွယ်ပြင်လွယ်နှင့်ထိထိရောက်ရောက်နိုင်ပါတယ်။ ဇာတ်ကောင် encoding encoding နှင့်အရှည်ကိုမှန်ကန်စွာကိုင်တွယ်ခြင်းနှင့်အရှည်သည်တိကျသောကြားဖြတ်ရလဒ်များကိုသေချာစေရန်သော့ချက်ဖြစ်သည်။ ဤဆောင်းပါးတွင်နည်းစနစ်သည်သင်၏စီမံကိန်းဖွံ့ဖြိုးတိုးတက်မှုအတွက်လက်တွေ့ကျကျရည်ညွှန်းချက်ပေးနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။

မကြာသေးမီ ဆောင်းပါးများ