PHP 7.0 နှင့်နောက်ပိုင်းတွင် MB_ereGi_replace () တွင်တရားဝင်ပြတ်တောက်ခဲ့ပြီး PHP 7.1 ပြီးနောက်လုံးဝဖယ်ရှားခဲ့သည်။ ၎င်းသည် Multi-byte strings များကိုပုံမှန်အစားထိုးခြင်းအပေါ်မှီခိုနေရသော developer များစွာကိုစိတ်အနှောင့်အယှက်ဖြစ်စေခဲ့သည်။ အထူးသဖြင့်ယူနီကုတ်ကြိုးကြိုးများ (တရုတ်, ဂျပန်စသည်တို့) ကိုဖြစ်စေသောဘက်မလိုက်သောအစားထိုးခြင်းလိုအပ်သည် (ဥပမာတရုတ်, ဂျပန်စသည်တို့) လိုအပ်သည်။
ကံကောင်းထောက်မစွာပင် PHP ၏ PREG_replace () function သည်မှန်ကန်သောပြုပြင်မွမ်းမံသူများနှင့် Unicode Support တို့နှင့်ပေါင်းစပ်ပြီး mb_eregi_replace ထက် ပို. ပင်အကောင်အထည်ဖော်နိုင်သည်။ ဤဆောင်းပါးသည် MB_EREGI_replace ( ) ကို preg_replace () ကိုမည်သို့အစားထိုးမည်ကိုတဖြည်းဖြည်းမိတ်ဆက်ပေးပြီး,
MB_ereGi_replace () သည် Multibyte string extension (Mbstring) တွင်ပါ 0 င်သောပုံမှန်အစားထိုးလုပ်ဆောင်ချက်ဖြစ်သည်။ သို့သော်၎င်း၏ပြ problem နာမှာ -
Syntax သည်အသက်ကြီးပြီး Perl စတိုင်ကိုပုံမှန်မထောက်ခံပါ။
ညံ့ဖျင်းသောစွမ်းဆောင်ရည်။
ခေတ်သစ် unicode, အပြောင်းအလဲနဲ့စွမ်းရည်နှင့်မြင့်မားသောပြုပြင်ထိန်းသိမ်းမှုကုန်ကျစရိတ်နှင့်အတူ။
ထို့ကြောင့်ပိုမိုခေတ်မီပြီးစွမ်းဆောင်ရည်မြင့်သော Preg_replace () ကို အသုံးပြုရန်အကြံပြုသည်။
ငါတို့သုံးခဲ့ဖူးတယ်ဆိုပါစို့
mb_eregi_replace("စမ်းသပ်မှု", "ပြန်လည်နေရာချ", $text);
ငါတို့ဒီလိုမျိုးပြန်ရေးနိုင်တယ်
preg_replace("/စမ်းသပ်မှု/ui", "ပြန်လည်နေရာချ", $text);
ဤနေရာတွင် U Modifier ဆိုသည်မှာ Unicode mode ကိုဖွင့် ဆိုလိုသည် ။
ကျွန်ုပ်တို့သည် "ပန်းသီး" အားလုံးကို "ငှက်ပျောသီး" ပါသောစာပိုဒ်တပိုဒ်တွင် "ပန်းသီး" တစ်ခုတွင်အစားထိုးလိုပြီးကိစ္စနှင့်မဆက်ဆံနိုင်သောအရာများဖြစ်သည်ဆိုပါစို့။
$text = "ငါ့အကြိုက်ဆုံးပန်းသီး,နှင့်ပန်းသီးဖျော်ရည်。";
$result = preg_replace("/ပန်းသီး/ui", "ငှက်ပျောသီး", $text);
echo $result;
ထုတ်လုပ်မှု -
我最喜欢吃ငှက်ပျောသီး,还有ငှက်ပျောသီး汁。
Unicode Parameter ကို URL ရှိ URL ရှိ URL တွင်အစားထိုးရန်စဉ်းစားပါ။
$url = "https://m66.net/search?q=ပန်းသီး手机";
$replaced = preg_replace("/ပန်းသီး/ui", "ငှက်ပျောသီး", $url);
echo $replaced;
ထုတ်လုပ်မှု -
https://m66.net/search?q=ငှက်ပျောသီး手机
သင်မြင်နိုင်သည့်အတိုင်း Preg_replace () သည် Unicode ပါ 0 င်သည့် URL များကိုလည်းကိုင်တွယ်နိုင်သည်။
သငျသညျ "Apple Phone", "Apple Computer", "Apple Pie" စသလိုပိုကွဲပြားခြားနားလျှင် "Apple Pie" စသဖြင့်သင်ပိုမိုရှုပ်ထွေးသောပုံမှန်အသုံးအနှုန်းများကိုသုံးနိုင်သည်။
$text = "我有一台ပန်းသီးကွန်ပျူတာ,也吃了ပန်းသီးစုရုံး。";
$pattern = "/ပန်းသီး(ကွန်ပျူတာ|စုရုံး)?/ui";
$replacement = "ငှက်ပျောသီး";
$result = preg_replace($pattern, $replacement, $text);
echo $result;
ထုတ်လုပ်မှု -
我有一台ငှက်ပျောသီး,也吃了ငှက်ပျောသီး。
Unicode mode ကိုဖွင့်ရန် U Modifier ကိုထည့်ရန်အမြဲသတိရပါ။
Preg_replace () ရှုပ်ထွေးသောပုံမှန် syntax (ဥပမာအားဖြင့်အုပ်စုများစသဖြင့်) ပိုမိုရှုပ်ထွေးသောပုံမှန် syntax ကိုထောက်ပံ့သည်။ Mb_eregi_replace ထက် ပို. ပြောင်းလွယ်ပြင်လွယ်ရှိသည်။
အကယ်. အစားထိုးအကြောင်းအရာတွင် backslash ( \ ) သို့မဟုတ်ဒေါ်လာစျေးနိမိတ်လက်ခဏာ ( $ ) ပါ 0 င်ပါကထွက်ပေါက်ဖြစ်စဉ်ကို preg_quote () သို့မဟုတ်နှစ်ဆကိုးကားထားသော) ကိုသုံးပါ။
Depreacated MB_ereGi_replace () သည် မသက်မသာဖြစ်သော်လည်း Preg_replace () သည် ပြီးပြည့်စုံသောရွေးချယ်စရာတစ်ခုအဖြစ်သာမကပိုမိုအားကောင်းသည့်အခြားရွေးချယ်စရာတစ်ခုအဖြစ်သာဆောင်ရွက်သည်။ သင် နှင့် i Modifiers များကိုအသုံးပြုခြင်းကိုသင်ကျွမ်းကျင်စွာအသုံးပြုနေသမျှကာလပတ်လုံးသင်မည်သည့် Multibyte ဇာတ်ကောင်အစားထိုးလိုအပ်ချက်များကိုအလွယ်တကူကိုင်တွယ်နိုင်သည်။
ပိုမိုရှုပ်ထွေးသောယူနီကုဒ်ပုံစံကိုက်ညီမှုနှင့်ကိုက်ညီရန်လိုအပ်ပါက PCRE ပုံမှန်အသုံးအနှုန်းများကို pcre ပုံမှန်ကမ္ဘာတွင်ပိုမိုဖြစ်နိုင်ချေများကိုသော့ဖွင့်ရန် syntax နှင့်အင်္ဂါရပ်များအကြောင်းပိုမိုလေ့လာနိုင်ပေလိမ့်မည်။