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

မှန်ကန်သောပုံမှန်ပုံမှန် syntax ကိုမသုံးခြင်းကြောင့်မမှန်ကန်သောအစားထိုးခြင်း

M66 2025-05-27

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 ၏အသေးစိတ်အချက်အလက်များကိုပြန်လည်နေရာချထားခြင်းများကိုအစားထိုးခြင်းအားဖြင့်မည်သည့်နေရာတွင်အစားထိုးခြင်းနှင့်အသေးစိတ်အချက်အလက်များကိုအသုံးချနိုင်ကြောင်းဤဆောင်းပါးကရှင်းပြပါလိမ့်မည်။


mb_eregi_replace function ကိုမိတ်ဆက်

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_ * ) သည်အနည်းငယ်ကွဲပြားသည်။


ပုံမှန်ပုံစံ Syntax ပြ problems နာများကြောင့်အစားထိုးရန်အကြောင်းပြချက်မရှိပါ

  1. 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 ကိုယ်တိုင်က ကိစ္စမရှိပါဘူး ,

  1. မမှန်ကန်သောထွက်ပေါက်ဇာတ်ကောင်

Mbregex တွင်အထူးအက္ခရာများနှင့်ထွက်ပေါက်နည်းလမ်းများသည် PCRE နှင့်ကွဲပြားသည်။ ဥပမာအားဖြင့်, d d အတန်းများကိုကိုယ်စားပြုရန် \ d ကိုအသုံးပြုခြင်းကိုအသုံးပြုခြင်းကိုမထောက်ပံ့နိုင်ပါ။ [0-9] ကို အသုံးပြုရမည်။

အမှားဥပမာ -

 mb_eregi_replace('\d+', 'ဂဏန်း', $str);

မှန်ကန်သောဥပမာ -

 mb_eregi_replace('[0-9]+', 'ဂဏန်း', $str);
  1. 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
?>