လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_ereGi_retore အစား MB_eregi_replace အစား Preg_replace () ကိုသုံးပါ

MB_ereGi_retore အစား MB_eregi_replace အစား Preg_replace () ကိုသုံးပါ

M66 2025-06-02

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 () ကန့်ကွက်?

MB_ereGi_replace () သည် Multibyte string extension (Mbstring) တွင်ပါ 0 င်သောပုံမှန်အစားထိုးလုပ်ဆောင်ချက်ဖြစ်သည်။ သို့သော်၎င်း၏ပြ problem နာမှာ -

  • Syntax သည်အသက်ကြီးပြီး Perl စတိုင်ကိုပုံမှန်မထောက်ခံပါ။

  • ညံ့ဖျင်းသောစွမ်းဆောင်ရည်။

  • ခေတ်သစ် unicode, အပြောင်းအလဲနဲ့စွမ်းရည်နှင့်မြင့်မားသောပြုပြင်ထိန်းသိမ်းမှုကုန်ကျစရိတ်နှင့်အတူ။

ထို့ကြောင့်ပိုမိုခေတ်မီပြီးစွမ်းဆောင်ရည်မြင့်သော Preg_replace () ကို အသုံးပြုရန်အကြံပြုသည်။

mb_eregi_replace အစား preg_replace () ကို သုံးပါ။

အခြေခံအသုံးပြုမှု

ငါတို့သုံးခဲ့ဖူးတယ်ဆိုပါစို့

 mb_eregi_replace("စမ်းသပ်မှု", "ပြန်လည်နေရာချ", $text);

ငါတို့ဒီလိုမျိုးပြန်ရေးနိုင်တယ်

 preg_replace("/စမ်းသပ်မှု/ui", "ပြန်လည်နေရာချ", $text);

ဤနေရာတွင် U Modifier ဆိုသည်မှာ Unicode mode ကိုဖွင့် ဆိုလိုသည်

ဥပမာ - တရုတ်သော့ချက်စာလုံးများကိုကြိုးဖြင့်အစားထိုးပါ

ကျွန်ုပ်တို့သည် "ပန်းသီး" အားလုံးကို "ငှက်ပျောသီး" ပါသောစာပိုဒ်တပိုဒ်တွင် "ပန်းသီး" တစ်ခုတွင်အစားထိုးလိုပြီးကိစ္စနှင့်မဆက်ဆံနိုင်သောအရာများဖြစ်သည်ဆိုပါစို့။

 $text = "ငါ့အကြိုက်ဆုံးပန်းသီး,နှင့်ပန်းသီးဖျော်ရည်。";
$result = preg_replace("/ပန်းသီး/ui", "ငှက်ပျောသီး", $text);
echo $result;

ထုတ်လုပ်မှု -

 我最喜欢吃ငှက်ပျောသီး,还有ငှက်ပျောသီး汁。

ဥပမာ - URL မှတိကျသော Unicode Parameter ကိုအစားထိုးပါ

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 နှင့်အင်္ဂါရပ်များအကြောင်းပိုမိုလေ့လာနိုင်ပေလိမ့်မည်။