လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Emoji အသုံးအနှုန်းများပါ 0 င်သည့်ကြိုးများကိုပြုလုပ်ရန် MB_Strcut function ကိုအသုံးပြုသည့်အခါအဘယ်အရာကိုကျွန်ုပ်အာရုံစိုက်သင့်သနည်း။

Emoji အသုံးအနှုန်းများပါ 0 င်သည့်ကြိုးများကိုပြုလုပ်ရန် MB_Strcut function ကိုအသုံးပြုသည့်အခါအဘယ်အရာကိုကျွန်ုပ်အာရုံစိုက်သင့်သနည်း။

gitbox 2025-05-26

MB_StrCut သည် PHP တွင် Multibyte ကြိုးများနှင့်ဆက်ဆံသောအခါ PHP တွင်အလွန်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်မှာ Multibyte string မှ bytes အားဖြင့်အလွှာများကိုကြားဖြတ်ရန်ဖြစ်သည်။ သို့သော် string တစ်ခုတွင် Emoji ကဲ့သို့သောအထူးအက္ခရာများပါ 0 င်သည့်အခါ MB_StrcCut ကိုအသုံးပြုပြီးအပိုစောင့်ရှောက်ရန်လိုအပ်သည်။

mb_strcut အလုပ်လုပ်ပုံ

mb_strcut (string $ string, int $ start, int $ အရှည် = NURL, string ကို $ encoding = null)
ဤလုပ်ဆောင်မှုသည် byte offsets (ဇာတ်ကောင် offsets ထက်) byte offsets အပေါ်အခြေခံသည့်ကြိုးကြိုးများကြားဖြတ်။

MB_SubstrCRCT , MB_StrCCUTS သည်အမှန်တကယ်တွင် "byte-safe" ဗားရှင်းဖြစ်သည်။

ဥပမာတစ်ခုကိုကြည့်ရအောင်။

<Code> $ str = "Hello ?? ကမ္ဘာ!"; $ cut = mb_structut ($ str, 0, 9, 9, 'utf-8); ပဲ့တင်သံ $ ဖြတ်; </ code>

output ကို မင်္ဂလာပါဟုသင်မျှော်လင့်နိုင်သည် ?? သို့သော်သင်အမှန်တကယ်ကျိုးပဲ့နေသောကြိုးကိုပင်တွေ့နိုင်သည်။ ဒါကြောင့်လား ?? UTF-8 encoding အရ 4-byte ဇာတ်ကောင်တစ်ခုဖြစ်ပြီး MB_Strcut သည် အလယ်တန်း bytes များတွင်ဖြတ်နိုင်သည်။

Emoji အထူးသဖြင့်စိတ်အနှောင့်အယှက်ဖြစ်ရတာလဲ။

Emoji သည်များသောအားဖြင့် 4 bytes (4) ခုသို့မဟုတ်ပင်ကြာကြာ (ဥပမာပေါင်းစပ် emoji) သည် (ဥပမာ။ သဘာ 0 ဇာတ်ကောင်နယ်နိမိတ်များကိုစဉ်းစားခြင်းမရှိဘဲ bytes အားဖြင့်သာဖြတ်တောက်ပါကသင်ပေါ်လာနိုင်သည်။

  • output တွင်တရားမဝင်သောစာလုံးများပါ 0 င်သည်။

  • Browser ကအမှိုက်သရိုက်များသို့မဟုတ်မေးခွန်းအမှတ်အသားများအဖြစ်ပြသသည်။

  • ဒေတာဘေ့စ်သည်အမှားတစ်ခု (အထူးသဖြင့်တင်းကျပ်သော mode တွင်) သတင်းပို့နိုင်သည်။

  • JSON encoding ကျရှုံးလိမ့်မည်။

emoji ပါ 0 င်သည့်ကြိုးများကိုမည်သို့အကောင်အထည်ဖော်နိုင်မည်နည်း။

အကယ်. သင်၏ရည်မှန်းချက်မှာ Emoji နှင့်စာသားကြိုတင်ကြည့်ရှုခြင်းကိုပြသရန် (Weibo, မှတ်ချက်များစသဖြင့်ပါသောအကြောင်းအရာများအတိုချုပ်) ကိုဖော်ပြရန်ဖြစ်သည်။ အောက်ပါနည်းလမ်းများကိုသင်စဉ်းစားနိုင်သည်။

နည်းလမ်း 1: MB_SStrcut အစား MB_Substr ကို သုံးပါ

အကယ်. သင်သည် "အက္ခရာများ" တွင်ကြားဖြတ်ခြင်းကိုစိတ်ထဲမထားပါကကျွန်ုပ်သည် MB_Substr ကို သုံးနိုင်သည်။

<Code> $ str = "Hello ?? ကမ္ဘာ!"; $ Preview = MB_substred ($ str, 0, 7, 7, '8'); ECHO $ ​​Preview; </ code>

ဤသည်အပြည့်အဝဇာတ်ကောင်များ, bytes bytes မဟုတ်။

နည်းလမ်း 2 - တရားမ 0 င်စာလုံးများကိုပုံမှန် colling ကိုပေါင်းစပ်ခြင်း

အကယ်. သင်သည် MB_Strcut ကို အသုံးပြု. (ဥပမာအားဖြင့် bytes အရေအတွက်ကိုထိန်းချုပ်ရန်) ကိုအသုံးပြုရန်အခိုင်အမာဆိုလျှင်,

<Code> $ str = "Hello ?? ကမ္ဘာ!"; $ cut = mb_structut ($ str, 0, 9, 9, 'utf-8);

// တရားမဝင်ဇာတ်ကောင်ပုံမှန်သန့်ရှင်းရေးကိုအသုံးပြုပါ
$ စင်ကြယ်သော = preg_replace ('/ [\ xc0- \ xff] [\ x80- \ xbf] * $ /' ',',
ECHO $ ​​စင်ကြယ်ခြင်း,
</ code>

ဤကုဒ်သည်အဆုံးတိုင်နိုင်သည့်မပြည့်စုံသော Multibyte စာလုံးများကိုဖယ်ရှားရန်ကြိုးစားသည်။

နည်းလမ်း 3- နယ်နိမိတ်ကိုဆုံးဖြတ်ရန် intlbreakiterator ကို သုံးပါ (အကြံပြုထားသောနည်းလမ်း)

PHP ၏ IntL တိုးချဲ့မှုသည်ဇာတ်ကောင်နယ်နိမိတ်ကိုထောက်ပံ့ပေးသည်။ ရှုပ်ထွေးသော Multibyte ဇာတ်ကောင်များကိုကိုင်တွယ်ရန်သင့်တော်သည်။

<Code> $ str = "Hello ?? ကမ္ဘာ!"; $ breakiterator = intlbreakiterator :: createcharacterince ('en'); $ crobriterator-> Sepectext ($ str);

$ bytes = 0;
$ ကန့်သတ် = 9;
$ POS = 0;

foreach ($ brougucterator $ နယ်နိမိတ်အဖြစ်) {
$ chunk = mb_subscr ($ str, $ POS, $ POS, $ POS, $ POS, ';
$ Chunkbytes = strlen ($ chunk);
IF ($ bytes + $ chunkbytes> $ ကန့်သတ်
ချိုး;
}
$ bytes + = $ chunkbytes;
$ POS = $ နယ်နိမိတ်;
}

$ Preview = MB_Substred ($ str, 0, 0, $ POS, 'UTF-8);
ECHO $ ​​Preview;
</ code>

၎င်းသည်သင်ကြားဖြတ်သည့် string သည် byte ကန့်သတ်ချက်များအောက်တွင်စာလုံးအပြည့်ဖြင့်အပြည့်အဝရှိပြီးအပြည်ပြည်ဆိုင်ရာစီမံကိန်းများသို့မဟုတ်ရှုပ်ထွေးသောစာသားပြုပြင်ခြင်းအတွက်သင့်တော်သည်။

အကျဉ်းချုပ်

ကြိုးများ၌ emoji သို့မဟုတ်အခြား Multibyte ဇာတ်ကောင်များပါ 0 င်သည့်အခါ MB_Srstrcut သုံး. strings များကိုကြားဖြတ်ရန်အထူးဂရုပြုရန်လိုအပ်သည်။

  • ၎င်းကို Emoji ကိုဖျက်ဆီးနိုင်သည့် Bytes အားဖြင့်ကြားဖြတ်နေသည်။

  • အပြီးတွင်တရားမ 0 င်အက္ခရာများကိုပုံမှန်ပြုပြင်ခြင်းနှင့်အတူသန့်ရှင်းရေးသို့မဟုတ်ပေါင်းစပ်ရန်လိုအပ်သည်။

  • MB_Subtrcr ကို အသုံးပြုခြင်းသည်ပိုမိုလုံခြုံသည်, သို့သော်တိတိကျကျမထိန်းချုပ်နိုင်ပါ။

  • turuncure အနေအထားသည်တရားဝင်ဖြစ်ကြောင်းသေချာစေရန် intlbreakiterator ကို အသုံးပြုရန်အကြံပြုသည်။

emoji processing, database store သိုလှောင်မှု, interface outputions စသည်တို့ကို emoji အပြောင်းအလဲနဲ့ပါ 0 င်မှုကိုစစ်ဆေးရန်သေချာပါစေ။

ဇာတ်ကောင်အပြောင်းအလဲနဲ့ပတ်သက်တဲ့အကောင်းဆုံးအလေ့အကျင့်တွေအတွက်စာရွက်စာတမ်းများကိုဖတ်ပါသို့မဟုတ် https://gitbox.net/dev/mbstring သို့ဝင်ရောက်ပါ။