PHP တွင် MB_ereGi_replace function ကိုအမှုန်ပြုမိသော Multi-byte ပုံမှန်စကားရပ်အစားထိုးလုပ်ဆောင်မှုများပြုလုပ်ရန်အသုံးပြုသည်။ ၎င်းသည် Multibyte encoded strings များအတွက်အထူးဒီဇိုင်းပြုလုပ်ထားသော Mbstring extension ၏တစ်စိတ်တစ်ပိုင်းဖြစ်သည်။ MB_EREGI_replace နှင့်နှိုင်းယှဉ်လျှင် MB_EREGI_replace သည်တရုတ်, ဂျပန်နှင့်ကိုရီးယားကဲ့သို့သော Byte အက္ခရာများကိုကိုင်တွယ်ရန်ပိုမိုသင့်တော်သည်။
သို့သော် developer များစွာသည် MB_EREGI_replace ကို သုံးသောအခါမမှန်ကန်သောအစားထိုးပြ problem နာကိုကြုံတွေ့ရပြီး root အကြောင်းအရင်းမှာမှန်မှန် syntax သည်ပုံမှန်အသုံးအနှုန်းပုံစံတွင်မသုံးသောကြောင့်ဖြစ်သည်။ ဤဆောင်းပါးတွင် Undomatatatatatatatatatats သည်ပုံမှန် Expression Syntax နှင့် MB_eregi_replace ၏အသေးစိတ်အချက်အလက်များကိုပြန်လည်နေရာချထားခြင်းများကိုအစားထိုးခြင်းအားဖြင့်မည်သည့်နေရာတွင်အစားထိုးခြင်းနှင့်အသေးစိတ်အချက်အလက်များကိုအသုံးချနိုင်ကြောင်းဤဆောင်းပါးကရှင်းပြပါလိမ့်မည်။
function ကိုအဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအောက်ပါအတိုင်းဖြစ်သည် -
string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
$ ပုံစံ - ကိုက်ညီမှုနှင့်ကိုက်ညီမှုအတွက်ပုံမှန်စကားရပ်။
$ အစားထိုး : string ကိုအစားထိုး။
$ string : ဆိုင်းငံ့ string ကို။
$ option : ပုံမှန်စကားရပ်၏ပြုပြင်မွမ်းမံ, "MSR" မှ default ။
၎င်းသည် Mbstring ၏ Multi-byte ပုံမှန်အင်ဂျင်ကိုပြည်တွင်း၌အသုံးပြုသည်, ထို့ကြောင့်ပုံမှန် syntax နှင့် pcre ( preg_ * ) သည်အနည်းငယ်ကွဲပြားသည်။
PCRE Syntax ကိုမထောက်ပံ့ပါ
MB_eregi_replace သည် Mbregex ပုံမှန်အင်ဂျင်ကိုအသုံးပြုသည်။ Developer အများအပြားသည် PCRE Syntax ကို အသုံးပြု. PCRE Syntax ကို အသုံးပြု. MB_ereGi_replace တွင် PCREGI_replace တွင် PCRE စတိုင်ခွဲထွက်သူများမပါ 0 င်နိုင်ပါ ။
အမှားဥပမာ -
mb_eregi_replace('/abc/', 'xyz', $str);
မှန်ကန်သောအသုံးပြုမှုဖြစ်သင့်သည် -
mb_eregi_replace('abc', 'xyz', $str);
MB_eregi_replace ကိုယ်တိုင်က ကိစ္စမရှိပါဘူး ,
မမှန်ကန်သောထွက်ပေါက်ဇာတ်ကောင်
Mbregex တွင်အထူးအက္ခရာများနှင့်ထွက်ပေါက်နည်းလမ်းများသည် PCRE နှင့်ကွဲပြားသည်။ ဥပမာအားဖြင့်, d d အတန်းများကိုကိုယ်စားပြုရန် \ d ကိုအသုံးပြုခြင်းကိုအသုံးပြုခြင်းကိုမထောက်ပံ့နိုင်ပါ။ [0-9] ကို အသုံးပြုရမည်။
အမှားဥပမာ -
mb_eregi_replace('\d+', 'ဂဏန်း', $str);
မှန်ကန်သောဥပမာ -
mb_eregi_replace('[0-9]+', 'ဂဏန်း', $str);
Multi-byte ဇာတ်ကောင်ကိုက်ညီမှုနှင့်ကိုက်ညီ
ပုံမှန်အသုံးအနှုန်းများသည် byte အက္ခရာများကိုအံဝင်ခွင်ကျဖြစ်သင့်သည်။ အကယ်. ပုံစံကိုရိုးရှင်းစွာရေးသားပါကသို့မဟုတ် byte ယူဆချက်ကိုအသုံးပြုပါက၎င်းသည်ပွဲစဉ်ကိုကျရှုံးစေလိမ့်မည်။
ငါတို့မှာစာပိုဒ်တစ်ခုရှိတယ်ဆိုပါစို့။
$str = "Hello mb_eregi_replace example with M66.net URL.";
အမှားအယွင်းရေးခြင်း (PCRE SESSTATE ကိုအသုံးပြုခြင်း)
echo mb_eregi_replace('/m66\.net/', 'example.com', $str);
delimiter အဖြစ်အသိအမှတ်မပြုသောကြောင့် ၎င်းကို အောင်မြင်စွာအစားထိုးမည်မဟုတ်ပါ။
မှန်ကန်သောအရေးအသား
echo mb_eregi_replace('m66\.net', 'example.com', $str);
MB_EREGI_replace သည် PCRE ပုံစံ SEFFATES နှင့် MCREFERS ကိုမထောက်ပံ့ပါ။
ပုံမှန်အသုံးအနှုန်းများသည် mbregex syntax သတ်မှတ်ချက်ကိုလိုက်နာသင့်သည်။
မမှန်ကန်သောပုံစံသည် function ကို target string ကိုမကိုက်ညီစေရန်ပျက်ကွက်ခြင်းနှင့်သဘာဝအစားထိုးခြင်းမှာမမှန်ကန်ပါ။
Multibyte ဇာတ်ကောင်နှင့်ကိုက်ညီသည့်အခါ, မှန်ကန်သောဇာတ်ကောင်အစုံနှင့် Escape Method ကိုအသုံးပြုခြင်းကိုသင်ပိုမိုအာရုံစိုက်သင့်သည်။
MB_eregi_replace ၏ပုံမှန် syntax သတ်မှတ်ချက်ကိုနားလည်ခြင်း MB_eregi_replace ၏အသေးစိတ်အချက်အလက်များကိုနားလည်နိုင်ရန်သင့်အား function ကိုပိုမိုကောင်းမွန်စွာအသုံးပြုရန်နှင့်မမှန်ကန်သောအန္တရာယ်များကိုအစားထိုးခြင်းကိုရှောင်ရှားနိုင်သည်။
<?php
// မှန်ကန်သောနမူနာကုဒ်:ဒိုမိန်းအမည်ကို string ကိုထည့်ပါm66.netအစားထိုးလိုက်ပါexample.com
$str = "URL သို့သွားရောက်ပါ:http://m66.net/path?query=1";
// မှတ်သား:mb_eregi_replaceအဘယ်သူမျှမပုံမှန်ခွဲထုတ်မလိုအပ်,ပုံမှန်အမှုမခံစားနိုင်
$result = mb_eregi_replace('m66\.net', 'example.com', $str);
echo $result; // ထုတ်လုပ်ခြင်း:URL သို့သွားရောက်ပါ:http://example.com/path?query=1
?>