MB_StrCut သည် PHP တွင် Multibyte ကြိုးများနှင့်ဆက်ဆံသောအခါ PHP တွင်အလွန်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်မှာ Multibyte string မှ bytes အားဖြင့်အလွှာများကိုကြားဖြတ်ရန်ဖြစ်သည်။ သို့သော် string တစ်ခုတွင် Emoji ကဲ့သို့သောအထူးအက္ခရာများပါ 0 င်သည့်အခါ MB_StrcCut ကိုအသုံးပြုပြီးအပိုစောင့်ရှောက်ရန်လိုအပ်သည်။
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 သည်များသောအားဖြင့် 4 bytes (4) ခုသို့မဟုတ်ပင်ကြာကြာ (ဥပမာပေါင်းစပ် emoji) သည် (ဥပမာ။ သဘာ 0 ဇာတ်ကောင်နယ်နိမိတ်များကိုစဉ်းစားခြင်းမရှိဘဲ bytes အားဖြင့်သာဖြတ်တောက်ပါကသင်ပေါ်လာနိုင်သည်။
output တွင်တရားမဝင်သောစာလုံးများပါ 0 င်သည်။
Browser ကအမှိုက်သရိုက်များသို့မဟုတ်မေးခွန်းအမှတ်အသားများအဖြစ်ပြသသည်။
ဒေတာဘေ့စ်သည်အမှားတစ်ခု (အထူးသဖြင့်တင်းကျပ်သော mode တွင်) သတင်းပို့နိုင်သည်။
JSON encoding ကျရှုံးလိမ့်မည်။
အကယ်. သင်၏ရည်မှန်းချက်မှာ Emoji နှင့်စာသားကြိုတင်ကြည့်ရှုခြင်းကိုပြသရန် (Weibo, မှတ်ချက်များစသဖြင့်ပါသောအကြောင်းအရာများအတိုချုပ်) ကိုဖော်ပြရန်ဖြစ်သည်။ အောက်ပါနည်းလမ်းများကိုသင်စဉ်းစားနိုင်သည်။
အကယ်. သင်သည် "အက္ခရာများ" တွင်ကြားဖြတ်ခြင်းကိုစိတ်ထဲမထားပါကကျွန်ုပ်သည် MB_Substr ကို သုံးနိုင်သည်။
<Code> $ str = "Hello ?? ကမ္ဘာ!"; $ Preview = MB_substred ($ str, 0, 7, 7, '8'); ECHO $ Preview; </ code>ဤသည်အပြည့်အဝဇာတ်ကောင်များ, bytes bytes မဟုတ်။
အကယ်. သင်သည် MB_Strcut ကို အသုံးပြု. (ဥပမာအားဖြင့် bytes အရေအတွက်ကိုထိန်းချုပ်ရန်) ကိုအသုံးပြုရန်အခိုင်အမာဆိုလျှင်,
<Code> $ str = "Hello ?? ကမ္ဘာ!"; $ cut = mb_structut ($ str, 0, 9, 9, 'utf-8); // တရားမဝင်ဇာတ်ကောင်ပုံမှန်သန့်ရှင်းရေးကိုအသုံးပြုပါ
$ စင်ကြယ်သော = preg_replace ('/ [\ xc0- \ xff] [\ x80- \ xbf] * $ /' ',',
ECHO $ စင်ကြယ်ခြင်း,
</ code>
ဤကုဒ်သည်အဆုံးတိုင်နိုင်သည့်မပြည့်စုံသော Multibyte စာလုံးများကိုဖယ်ရှားရန်ကြိုးစားသည်။
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 သို့ဝင်ရောက်ပါ။