Multibyte strings (UTF-8 encoded, တရုတ်, ဂျပန်, ကိုးရီးယားစသကဲ့သို့ပင်တရုတ်, ဂျပန်, ကိုးရီးယားစသဖြင့် encoded) နှင့်အတူစံပုံမှန်အသုံးအနှုန်းလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းခြင်းမပြုနိုင်ပါ။ ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် MB_ereGi_replace ဖြစ်သည်။ ဤဆောင်းပါးသည်ကြယ်ပွင့် ( * ) ကဲ့သို့သောသတ်မှတ်ထားသောစာလုံးများဖြင့်နံပါတ်များအားလုံးကိုအစားထိုးရန်ဤလုပ်ဆောင်ချက်ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။
MB_eregi_replace သည် PHP ၏ Multibyte string extensions functions များထဲမှတစ်ခုဖြစ်သည်။ ၎င်းသည် Esegi_replace နှင့်ဆင်တူသော်လည်း Multibyte စာလုံးများကိုမှန်ကန်စွာကိုင်တွယ်နိုင်သည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msri" ] )
parameter သည်ဖော်ပြချက်:
$ ပုံစံ - ကိုက်ညီရန်ပုံမှန်စကားရပ်။
$ အစားထိုး : ကိုက်ညီသောအကြောင်းအရာကိုအစားထိုးရန်အသုံးပြုသော string ကို။
$ string : လုပ်ငန်းများ၌ခံရဖို့ပစ်မှတ် string ကို။
$ option (optional) - လိုင်းများ ( M ) နှင့်ကိုက်ညီသော lines ( s ) နှင့်ကိုက်ညီခြင်း, အမှု ( 1 ) နှင့်ကိုက်ညီခြင်း,
?? မှတ်ချက် - PHP 7.0.0 တွင် MB_ereGi_replace function ကိုဖယ်ရှားပြီးစီမံကိန်းအသစ်များတွင်အသုံးပြုရန်အတွက်အကြံမပေးပါ။ အကယ်. သင်သည် PHP 5.x ကိုအသုံးပြုနေပါက၎င်းကိုသင်အသုံးပြုနိုင်သည်။ ဒီလိုမှမဟုတ်ရင်မင်းအစား preg_replace ကို သုံးသင့်တယ်။
ငါတို့မှာအောက်ပါ string ကိုရှိတယ်ဆိုပါစို့။
$str = "အသုံးပြုသူIDဟုတ်ကဲ့12345,验证码ဟုတ်ကဲ့67890";
နံပါတ်များအားလုံးကို * နှင့်အစားထိုးလိုသည်။ အောက်ပါကုဒ်ကိုသုံးနိုင်သည်။
<?php
mb_internal_encoding("UTF-8"); // ပြည်တွင်းရေး encoding ထားပါ
$str = "အသုံးပြုသူIDဟုတ်ကဲ့12345,验证码ဟုတ်ကဲ့67890";
// အသုံးပြု mb_eregi_replace နံပါတ်များအားလုံးကိုအစားထိုးပါ
$result = mb_eregi_replace("[0-9]", "*", $str);
echo $result;
?>
output ရလဒ် -
အသုံးပြုသူIDဟုတ်ကဲ့*****,验证码ဟုတ်ကဲ့*****
ဤဥပမာတွင် [0-9] သည် မည်သည့်နံပါတ်နှင့်ကိုက်ညီခြင်းကိုဆိုလိုသည်။ အကယ်. သင်သည်ဂဏန်းမျိုးစုံနှင့်ကိုက်ညီပြီး၎င်းကိုကြယ်ပွင့်တစ်ခုဖြင့်အစားထိုးလိုပါကအောက်ပါပုံစံကိုသုံးနိုင်သည်။
$result = mb_eregi_replace("[0-9]+", "*", $str);
ထုတ်လုပ်မှု -
အသုံးပြုသူIDဟုတ်ကဲ့*,验证码ဟုတ်ကဲ့*
MB_EREGI_replace သည် ဗားရှင်းအသစ်များတွင်စွန့်ပစ်ခြင်းကိုထည့်သွင်းစဉ်းစားခြင်းအားဖြင့် Preg_replace ကို အသုံးပြုရန်အကြံပြုသည်။
<?php
$str = "အသုံးပြုသူIDဟုတ်ကဲ့12345,验证码ဟုတ်ကဲ့67890";
$result = preg_replace("/\d+/", "*", $str);
echo $result;
?>
Preg_replace သည် PCRE အခြေစိုက်ပုံမှန် expression function ဖြစ်သည်။ ၎င်းသည် UTF-8 ကိုထောက်ပံ့သည်။ သင် သေချာစွာအသုံးပြုရန်သေချာအောင်လုပ်ပါ။
$result = preg_replace("/\d+/u", "*", $str);
ဤနံပါတ်အစားထိုးကိုမကြာခဏအသုံးပြုသည်။
ဒေတာနှိမ်နှင်းခြင်း - ID နံပါတ်နှင့်မိုဘိုင်းဖုန်းနံပါတ်ကဲ့သို့သောအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုဖျောက်ထားပါ။
log filtering - နံပါတ်များကို debug အချက်အလက်များသို့ယိုစိမ့်မှုမှကာကွယ်ပေးသည်။
Interface Beautification : နံပါတ်များကို * သို့မဟုတ်ကဲ့သို့သောအမြင်အာရုံကို visual placeholders သို့ပြောင်းပါ။
ဥပမာအားဖြင့် M66.net မှပေးသောအသုံးပြုသူသတင်းအချက်အလက်အကာအကွယ်မျက်နှာပြင်တွင်အသုံးပြုသူသီးသန့်တည်ရှိမှုကိုကာကွယ်ရန် input strings များကိုလုပ်ဆောင်ရန်အလားတူနည်းလမ်းကိုအသုံးပြုသည်။
MB_eregi_replace သည် PHP ၏အဟောင်းများကိုဗားရှင်းအဟောင်းများတွင်ကြီးမားသော Multibyte အထောက်အပံ့များကိုထောက်ပံ့သော်လည်း, မည်သည့်နည်းလမ်းကိုအသုံးပြုပါစေ string ထဲရှိနံပါတ်ကိုလုံခြုံရေးနှင့်ဗေဒများ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းရန်ပြောင်းလွယ်ပြင်လွယ်အစားထိုးနိုင်သည်။