PHP တွင် MB_EREGI_RERE_ROTOTATETATETATETATETATE function ကို အသုံးပြု. Multibyte စာလုံးများကိုပုံမှန်အစားထိုးရန်နှင့်အမှုအားလျစ်လျူရှုရန်အသုံးပြုသည်။ UTF-8 ကဲ့သို့သော Multibyte encoded ကြိုးများကိုကိုင်တွယ်ရန်အလွန်အသုံးဝင်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် input string တွင်တရားမ 0 င်ဇာတ်ကောင်အချို့ပါ 0 င်ပါကတရားမ 0 င်သောဇာတ်ကောင်အချို့ပါ 0 င်ပါကပုံမှန်စာတန်းများမှလွတ်မြောက်ခြင်းသို့မဟုတ်အမှားအယွင်းများကိုမကြာခဏဖြစ်ပေါ်စေလိမ့်မည်။
တရားမ 0 င်ဇာတ်ကောင်များကြောင့်ပုံမှန်စကားရပ်ပျက်ကွက်မှုပြ problem နာကိုရှောင်ရှားရန် MB_ERREAGI_replace function ကိုမသုံးမီဤဆောင်းပါးသည်မည်ကဲ့သို့ Preprocess ကြိုးများကိုမသုံးနိုင်ကြောင်းမိတ်ဆက်ပေးလိမ့်မည်။
MB_EREGI_replace ၏ပထမဆုံး pareter သည်ပုံမှန်စကားရပ်ပုံစံဖြစ်သည်, ဒုတိယ parameter သည်အစားထိုးအကြောင်းအရာများဖြစ်ပြီးတတိယအချက်မှာလုပ်ငန်းများ၌ string ကိုဖြစ်သည်။
ဥပမာ -
<?php
$text = "Hello World!";
$pattern = "world";
$replacement = "PHP";
echo mb_eregi_replace($pattern, $replacement, $text);
?>
output ကို:
Hello PHP!
သို့သော် ဒေါ်လာပုံစံ သို့မဟုတ်ဆိုင်းငံ့ထားသည့် string သည်မကိုက်ညီသောအထူးအက္ခရာများပါ 0 င်သည့်အခါပွဲသည်ပျက်ကွက်နိုင်ပြီးသတိပေးချက်ကိုပင်ပစ်ချနိုင်သည်။
ပုံမှန်အသုံးအနှုန်းများတွင်အထူးအဓိပ္ပာယ်ရှိသောဇာတ်ကောင်များမှာ -
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
အကယ်. ဤဇာတ်ကောင်များသည်ပုံစံတွင်သို့မဟုတ်အစားထိုးရန် string တွင်ပေါ်လာပါက၎င်းတို့သည်မှန်ကန်စွာထွက်ပြေးတိမ်းရှောင်ရမည်။
PHP ၏ကိုယ်ပိုင် function preg_quote () သည် အထူးအက္ခရာများကိုပုံမှန်အသုံးအနှုန်းများမှလွတ်မြောက်နိုင်သည်။ သို့သော် MB_eregi_replace သည် MBREGEX တိုးချဲ့မှုကိုအသုံးပြု သည် ။ PREG_ * စီးရီး PCRE မဟုတ်ဘဲထွက်ပေါက်စည်းမျဉ်းများကိုအနည်းငယ်ကွဲပြားသည်,
ဥပမာ -
<?php
$pattern_raw = "hello.world"; // . ဒါဟာအထူးဇာတ်ကောင်ပါ
$pattern = preg_quote($pattern_raw, '/'); // မှလွတ်မြောက်ရန် hello\.world
$text = "Hello World! hello.world test.";
echo mb_eregi_replace($pattern, "PHP", $text);
?>
ထုတ်လုပ်မှု -
Hello World! PHP test.
ဆိုင်းငံ့ထားသောကြိုးများမှာထိန်းချုပ်မှုဇာတ်ကောင်များ (ပုံနှိပ်ထုတ်ဝေထားသောစာလုံးများကဲ့သို့သော) တွင်ထိန်းချုပ်မှုဇာတ်ကောင်များပါ 0 င်သည်။
<?php
// ပုံနှိပ်ထုတ်ဝေထားသောစာလုံးများကိုဖယ်ရှားပါ,သာမန်စာလုံးများနှင့်တရုတ်သာသာထိန်းသိမ်းထားသည်
$clean_text = preg_replace('/[^\P{C}\n]+/u', '', $text);
အောက်ပါဥပမာသည် MB_ereGi_replace နှင့်အစားထိုးမည့် string အတွက် preproccess ဇာတ်ကောင်မခေါ်မီပုံစံအတွက်အထူးအက္ခရာများမှလွတ်မြောက်ရန်ဘယ်လိုပြသထားတယ်:
<?php
// အစားထိုးခံရဖို့လိုအပ်ကြောင်း strings နှင့်ပုံစံများ
$pattern_raw = "foo.bar?"; // အထူးအက္ခရာများပါရှိသည် . နှင့် ?
$replacement = "PHP";
$text = "Hello foo.bar? world! \x01\x02"; // ထိန်းချုပ်မှုဇာတ်ကောင်များပါဝင်သည်
// 1. ထွက်ပေါက် mode အတွက်အထူးအက္ခရာများ
$pattern = preg_quote($pattern_raw, '/');
// 2. preprocessed စာသား,ထိန်းချုပ်မှုဇာတ်ကောင်ဖယ်ရှားပါ
$clean_text = preg_replace('/[^\P{C}\n]+/u', '', $text);
// 3. အသုံးပြုmb_eregi_replaceအစားထိုးပါစေ(အမှုကိုလျစ်လျူရှုပါ)
$result = mb_eregi_replace($pattern, $replacement, $clean_text);
echo $result;
?>
ထုတ်လုပ်မှု -