လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> နံပါတ်များအားလုံးကို string တစ်ခုတွင်တိကျသောဇာတ်ကောင်များအဖြစ်အစားထိုးပါ။

နံပါတ်များအားလုံးကို string တစ်ခုတွင်တိကျသောဇာတ်ကောင်များအဖြစ်အစားထိုးပါ။

M66 2025-05-28

Multibyte strings (UTF-8 encoded, တရုတ်, ဂျပန်, ကိုးရီးယားစသကဲ့သို့ပင်တရုတ်, ဂျပန်, ကိုးရီးယားစသဖြင့် encoded) နှင့်အတူစံပုံမှန်အသုံးအနှုန်းလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းခြင်းမပြုနိုင်ပါ။ ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် MB_ereGi_replace ဖြစ်သည်။ ဤဆောင်းပါးသည်ကြယ်ပွင့် ( * ) ကဲ့သို့သောသတ်မှတ်ထားသောစာလုံးများဖြင့်နံပါတ်များအားလုံးကိုအစားထိုးရန်ဤလုပ်ဆောင်ချက်ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။

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 ထဲရှိအရာအားလုံးကိုကြယ်ပွင့ အဖြစ်အစားထိုးပါ။

ငါတို့မှာအောက်ပါ 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 ကိုသုံးပါ

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);

လက်တွေ့ကျသော application အခြေအနေများ

ဤနံပါတ်အစားထိုးကိုမကြာခဏအသုံးပြုသည်။

  • ဒေတာနှိမ်နှင်းခြင်း - ID နံပါတ်နှင့်မိုဘိုင်းဖုန်းနံပါတ်ကဲ့သို့သောအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုဖျောက်ထားပါ။

  • log filtering - နံပါတ်များကို debug အချက်အလက်များသို့ယိုစိမ့်မှုမှကာကွယ်ပေးသည်။

  • Interface Beautification : နံပါတ်များကို * သို့မဟုတ်ကဲ့သို့သောအမြင်အာရုံကို visual placeholders သို့ပြောင်းပါ။

ဥပမာအားဖြင့် M66.net မှပေးသောအသုံးပြုသူသတင်းအချက်အလက်အကာအကွယ်မျက်နှာပြင်တွင်အသုံးပြုသူသီးသန့်တည်ရှိမှုကိုကာကွယ်ရန် input strings များကိုလုပ်ဆောင်ရန်အလားတူနည်းလမ်းကိုအသုံးပြုသည်။

အကျဉ်းချုပ်

MB_eregi_replace သည် PHP ၏အဟောင်းများကိုဗားရှင်းအဟောင်းများတွင်ကြီးမားသော Multibyte အထောက်အပံ့များကိုထောက်ပံ့သော်လည်း, မည်သည့်နည်းလမ်းကိုအသုံးပြုပါစေ string ထဲရှိနံပါတ်ကိုလုံခြုံရေးနှင့်ဗေဒများ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းရန်ပြောင်းလွယ်ပြင်လွယ်အစားထိုးနိုင်သည်။