Multibyte String processing အတွက် PHP ကိုအသုံးပြုသည့်အခါ MB_eregi_replace () သည်ကိစ္စနှင့်မကိုက်ညီသောပုံမှန်အစားထိုးရန်အတွက်ဘုံလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်, စာလုံးသင်္ကေတစနစ်ကိုစနစ်တကျမလုပ်ဆောင်ပါက၎င်းသည်အထူးသဖြင့် UTF-8 တရုတ်ကြိုးများကိုကိုင်တွယ်သည့်အခါ output ကို function code သို့မဟုတ်အစားထိုးအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤဆောင်းပါးသည် MB_internal_encoding () ကိုသတ်မှတ်ခြင်းဖြင့်ဤပြ problems နာများကိုမည်သို့ရှောင်ရှားရမည်ကိုရှင်းပြပါလိမ့်မည်။
MB_ereGi_replace () သည် Multibyte strings functions များနှင့်သက်ဆိုင်သည်။ တရုတ်သို့မဟုတ်အခြား ASCII အက္ခရာများနှင့်ဆက်ဆံရာတွင်မှန်ကန်သော Internal encoding ကိုမသတ်မှတ်ပါကအောက်ပါပြ problems နာများဖြစ်ပေါ်လေ့ရှိသည်။
ရိုးရိုး burbled ရလဒ်ကိုအစားထိုး;
ပုံမှန်ကိုက်ညီမှုမအောင်မြင်ပါ,
ဇာတ်ကောင် truncation အမှား။
အောက်ပါဥပမာကိုသုံးသပ်ကြည့်ပါ -
<Code> $ pattern = 'Test'; $ အစားထိုး = 'အစားထိုး'; $ string = 'ဒါကစမ်းသပ်မှုတစ်ခုပဲ'; echo mb_eregi_replace ($ ပုံစံ, $ အစားထိုး, $ string); </ code>အချို့သောပတ်ဝန်းကျင်တွင်အထက်ပါကုဒ်သည် garbled code ကို output လုပ်လိမ့်မည်။ ဤသည်များသောအားဖြင့်ဇာတ်ကောင် encoding ကိုစနစ်တကျမသတ်မှတ်ခြင်းကြောင့်ဖြစ်ရတဲ့။
MB_Internal_encoding () သည်လက်ရှိ script တွင် multibyte string function မှအသုံးပြုသော Internal character encoding ကိုသတ်မှတ်ရန်သို့မဟုတ်ရယူရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။
mb_internal_encoding("UTF-8");
ဤကုဒ်နံပါတ်သည် PHP ကိုဖော်ပြထားသည်။ Multibyte string functions များကိုအသုံးပြုသည့်အခါ UTF-8 encoding ကိုသုံးပါ။ UTF-8 သည်တရုတ်နှင့်ဆက်ဆံရာတွင်အကြံပြုထားသော encoding method ဖြစ်သည်။ ပုံမှန်အားဖြင့်အချို့သောဆာဗာ configurations များသည် ISO-8859-1 သို့မဟုတ်အခြား encodings များကို internal encoding mob_eregi_replace () တွင်တရုတ်ကြိုးများပြုပြင်ပြောင်းလဲရန်ကုဒ်ကိုထုတ်ပေးနိုင်သည်။
concled code ကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်ဇာတ်ကောင်အစတွင်စာလုံးတစ်လုံးကိုအတိအလင်းသတ်မှတ်ရန်လိုအပ်သည်။
<code> & lt; PHP // utf-8 mb_internal_encoding ("UTF-8") သို့ internal encoding ကိုသတ်မှတ်ပါ။ // ပုံမှန်အစားထိုးသတ်မှတ်
$ plantoot = 'Test',
$ အစားထိုး = 'အစားထိုး';
$ string = 'ဒါကစမ်းသပ်မှုတစ်ခုပဲ';
// အစားထိုးလုပ်ဆောင်ပါ
$ ရလဒ် = mb_eregi_replace ($ ပုံစံ, $ အစားထိုး, $ string);
// output ရလဒ်
ECHO $ ရလဒ်,
>
</ code>
အထက်ပါကုဒ်သည် output ကိုဖြစ်လိမ့်မည်။
ဒါကအစားထိုး string ကိုဖြစ်ပါတယ်
ဆိုလိုသည်မှာပုံမှန်အစားထိုးသည်အောင်မြင်သောကြောင့် concled code မရှိပါ။
MB_Internal_encoding () အပြင် MB_ReGex_encoding () ကိုပုံမှန်အသုံးအနှုန်းများကိုရှင်းလင်းရန်စဉ်းစားနိုင်သည်။
<Code> MB_ReGex_encoding ("UTF-8"); </ code>ဤအချက်သည်ပုံမှန်ပုံစံကိုမှန်ကန်သော encoding နှင့်အတူခွဲခြမ်းစိတ်ဖြာခြင်းသည်ကိုက်ညီမှုမရှိသော encodings ကြောင့်ကိုက်ညီမှုမရှိသောကျရှုံးမှုများကိုရှောင်ရှားရန်သေချာစေသည်။
MB_EREGI_replace () ကိုအွန်လိုင်းအသုံးပြုလိုပါက Self-built ရိုးရှင်းသော debugging စာမျက်နှာကိုသုံးနိုင်သည်။
<code> & lt; php // ဥပမာ - M66.net/debuggug.php သို့: "https://mts :/m66.net/debuggug.php အတွက် M66.net/debug.php သို့သွားပါ။ ပဲ့တင်သံ "Debugging Tool ကိုသုံးခြင်း - HREF = '' $ URL '& GT; $ URL; / A & A & A & A & A & A & A & M & GT; ? & GT; </ code>ဤစာမျက်နှာတွင်ထည့်သွင်းမှုများ, ပုံမှန်အသုံးအနှုန်းများကိုအစားထိုးခြင်း,
အထူးသဖြင့်တရုတ်အကြောင်းအရာကိုပြုပြင်ပြီး MB_ereGi_replace သုံး. MB__eregi_replace သုံး. multibyte stringsing stringing multibyte stringsing stringsuch processing
encoding ကိုသတ်မှတ်ရန် MB_Internal_encoding ("UTF-8") ကို အမြဲတမ်းသုံးပါ။
mb_regex_encoding ("UTF-8") ကို ပေါင်းစပ်ခြင်း ("UTF-8") သည်ပုံမှန် mode ကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာကြောင်းသေချာစေသည်။
ဖြန့်ကျက်သို့မဟုတ်ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်းဆာဗာ default encoding settings ကို Verify;
အထူးသဖြင့်ဘာသာစကားမျိုးစုံသောပတ်ဝန်းကျင်တွင်ပုံမှန် encoding အပြုအမူများကိုမှီခိုခြင်းမပြုပါနှင့်။
encoding ကိုမှန်ကန်စွာသတ်မှတ်ခြင်းအားဖြင့်, barbled code ၏ဖြစ်ပျက်မှုသည် multi-byte string processing ကိုပိုမိုပြောင်းလဲစေနိုင်သည်။