string processing အတွက် PHP ကိုအသုံးပြုသောအခါ MB_ereGi_replace function သည်ကျွန်ုပ်၏ဘုံကိရိယာများအနက်မှတစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည် Multi-byte ကြိုးများပုံမှန်အားဖြင့်ပုံမှန်ဖြစ်ရပ်များကိုအကောင်အထည်ဖော်နိုင်သည်။ သို့သော် PHP 7.3+ ပတ်ဝန်းကျင်တွင် MB_ereGi_rereplace အသုံးပြုခြင်းသည်ကုဒ်နံပါတ်ထဲရှိ MB__eregi_replace ကို အသုံးပြုခြင်းသည်သတိပေးချက်များသို့မဟုတ်အမှားများကိုပင်ဖြစ်ပေါ်စေလိမ့်မည်ဟုကျွန်ုပ်ရုတ်တရက်တွေ့ရှိခဲ့သည်။ ဒီ function ကိုကန့်ကွက်ခဲ့ပေမယ့်နောက်ပိုင်းမှာငါကနက်နက်ရှိုင်းရှိုင်းလေ့လာပြီးအမှန်တရားကမဖြစ်ခဲ့ဘူးဆိုတာတွေ့ရှိခဲ့ပါတယ်။
ရိုးရိုးလေးပြောရလျှင် MB_eregi_replace သည် MATSIBYTE ကြိုးများ၌ပုံမှန်အသုံးအနှုန်းများကိုရှာဖွေရန် Mbstring extension လုပ်သည့်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။
<?php
$original = "Hello World! hello world!";
$result = mb_eregi_replace("hello", "hi", $original);
echo $result; // ထုတ်လုပ်ခြင်း:hi World! hi world!
?>
ဤလုပ်ဆောင်မှု၏လုပ်ဆောင်ချက်သည် Multi-byte string processing အတွက်အလွန်အသုံးဝင်သည်။ အထူးသဖြင့်ဖြစ်ရပ်မှန်ကိုက်ညီမှုလိုအပ်ပါက
PHP 7.3 နှင့်အထက်တွင် MB_EREGI_replace သည် အောက်ပါတို့နှင့်ဆင်တူသည့်သတိပေးချက်တစ်ခုကိုပြလိမ့်မည်။
Deprecated: mb_eregi_replace(): This function is deprecated
ဤသည်သည် PHP မှတာဝန်ရှိသူများကဤလုပ်ဆောင်မှုကိုကန့်ကွက်သည်ဟုယုံကြည်ရန် (ကျွန်ုပ်အပါအ 0 င်) ကိုမှားယွင်းစွာယုံကြည်ကြောင်းမှားယွင်းစွာယုံကြည်သည်။ ဒါကြောင့် MB_ereG_rereplace ကို လက်စွဲစာအုပ်စာလုံးအသေးသုံးပြီး preg_replace ကိုသုံးပြီး preg_replace ကို သုံးတယ်။
စင်စစ်အားဖြင့် Php 7.3 မှ MB_EREGI_replace ပေါ် မူတည်. အခြေခံပုံမှန်အင်ဂျင်ကိုစတင်သည်။ PHP မှတရားဝင်အင်ဂျင်ကို Mbregex မှ PCRE (Perl သဟဇာတပုံမှန်အသုံးအနှုန်းများ) နှင့် MB_eregi_replace function ကို MBREGIX_REATE function ကို MBReGex ကို အခြေခံ. အကောင်အထည်ဖော်သည်။
ဆိုလိုသည်မှာ
အဆိုပါ function ကိုလုံးဝဖယ်ရှားပစ်မထားဘူး, ၎င်းသည် "အနာဂတ်၌စွန့်ခွာသွားနိုင်သည်" ဟုတရားဝင်မှတ်သားထားပြီး developer များကိုတဖြည်းဖြည်းအသွင်ကူးပြောင်းရေးကိုသတိပေးသည်။
၎င်းသည် PHP ဗားရှင်းအချို့တွင်၎င်းကိုအဘယ်ကြောင့်ရရှိနိုင်ကြောင်းကိုလည်းရှင်းပြသည်။
အခြေခံ mbregex ပုံမှန်စာကြည့်တိုက်၏ပြုပြင်ထိန်းသိမ်းမှုအခြေအနေကိုယိုယွင်းပျက်စီးသွားပြီးမရှိတော့ပါ။
MB_EREGI_replace သည် စွန့်ပစ်ခြင်းအန္တရာယ်ရှိသည်နှင့်အမျှအောက်ပါရွေးချယ်စရာများကိုအသုံးပြုရန်အကြံပြုသည်။
<?php
$original = "Hello ကမ်ာဘ! hello ကမ်ာဘ!";
$pattern = "/hello/u"; // u ပြုပြင်မွမ်းမံသူများကို Multibytes ကိုထောက်ပံ့သည်,i ပြုပြင်မွမ်းမံမှုများအနေဖြင့်အမှုများ - အာရုံမခံစားနိုင်ပါ
$result = preg_replace($pattern . "i", "hi", $original);
echo $result; // ထုတ်လုပ်ခြင်း:hi ကမ်ာဘ! hi ကမ်ာဘ!
?>
ဒီမှာအချက်ကတော့
U Modifier သည် UTF-8 Multibytes တွင်ပုံမှန်အသုံးအနှုန်းများကိုပြုလုပ်နိုင်သည်။
ငါ ပြုပြင်မွမ်းမံအကောင်အထည်ဖော်မှုသည်အမှုအားလျစ်လျူရှု;
Preg_replace သည် PHP မှတရားဝင်အကြံပြုထားသောခေတ်မီပုံမှန်အစားထိုးလုပ်ဆောင်ချက်ဖြစ်သည်။
PHP 8.0 သည် MB_Str_ireToLyplace ဖြစ်သော MB_Str_ireplace ကို ပေါင်းထည့်သည်။ syntax သည်ရိုးရှင်းပါသည်။
<?php
$original = "Hello ကမ်ာဘ! hello ကမ်ာဘ!";
$result = mb_str_ireplace("hello", "hi", $original);
echo $result; // ထုတ်လုပ်ခြင်း:hi ကမ်ာဘ! hi ကမ်ာဘ!
?>
ဤစီမံကိန်း Runtime ပတ်ဝန်းကျင်သည် PHP 8.0 နှင့်အထက်ကိုထောက်ပံ့ပါက၎င်းသည်အလွယ်ကူဆုံးအခြားရွေးချယ်စရာဖြစ်သည်။
MB_EREGI_replace သည် PHP 7.3+ တွင်တန်ဖိုးရှိသည့်အရာအဖြစ်မှတ်သားထားသော်လည်းလုံးဝမဖယ်ရှားနိုင်ပါ။
ဤစွန့်ပစ်ခြင်းသည်လုပ်ငန်းဆောင်တာများကိုတိုက်ရိုက်ဖယ်ရှားခြင်းထက်အခြေခံအားဖြင့်ပုံမှန်အင်ဂျင်ပြောင်းလဲမှုမှဖြစ်သည်။
U နှင့် iTifiers နှင့် Preg_replace ကို အသုံးပြုရန်အကြံပြုသည်။
PHP 8.0 သို့မဟုတ်အထက်သို့အဆင့်မြှင့်တင်နိုင်လျှင် MB_Striietplace ကို သုံးနိုင်သည်။
အနာဂတ်တွင် PHP ဗားရှင်းများသည် MB_ereGi_replace ကို လုံးဝဖယ်ရှားပစ်နိုင်ပြီးအစောပိုင်းကကုဒ်သည် ပို. ကောင်းသည်။
ဤဆောင်းပါးသည်သင်၏လက်ရှိအခြေအနေကို MB_ereGi_replace ၏လက်ရှိအခြေအနေကိုရှင်းလင်းရန်,