PHP တွင် MB_ereGi_replace function သည်ဘက်ပေါင်းစုံ - လုံခြုံသောပုံမှန်အစားထိုးလုပ်ဆောင်မှုဖြစ်သည်။ ၎င်း၏အသုံးပြုမှုသည် Esegi_replace နှင့်ဆင်တူသော်လည်း Multibyte Strings အတွက်အကောင်းဆုံးဖြစ်သည်။
အစားထိုးရန်အတွက် MB_ereGi_replace ကို အသုံးပြုသောအခါပထမ ဦး ဆုံးဖမ်းယူအုပ်စု၏အကြောင်းအရာကိုကိုးကားရန်အစားထိုး string ကို ဒေါ်လာ 1 ဒေါ်လာ သုံးလိုသည်။
$pattern = 'pattern';
$replacement = '$1 something';
mb_eregi_replace($pattern, $replacement, $subject);
သို့သော်မည်သည့်အုပ်စုသည်ပုံမှန်စကားရပ်ပုံစံ (I.E. ကွင်းပြင်တွင်ပါ 0 င်သောပုံစံခွဲ) တွင်မသတ်မှတ်ပါက $ 1 တွင် မ သက်ဆိုင်ရာအကြောင်းအရာများမရှိပါ။
ဤသည်အစားထိုးရလဒ်ရလဒ်မျှော်လင့်ထားရာဖြစ်ခြင်းမဟုတ်။
ဒေါ်လာ 1 နှင့် $ 2 စသည့်အထူးသင်္ကေတများသည် Capture Group ၏အကြောင်းအရာများကိုပုံမှန်စကားရပ်တွင်ကိုးကားရန်အသုံးပြုသည်။ အကယ်. ပုံမှန်အသုံးအနှုန်းကိုကွင်းခတ်နှင့်အုပ်စုဖွဲ့မထားပါကဤကိုးကားသည်မမှန်ကန်ပါက။
ဥပမာအားဖြင့်:
$pattern = 'hello';
$replacement = '$1 world';
$subject = 'hello';
// အုပ်စုဖွဲ့ခြင်းမရှိပါ,$1 သက်ဆိုင်ရာအကြောင်းအရာမရှိပါ
echo mb_eregi_replace($pattern, $replacement, $subject);
ဤကုဒ်၏ရလဒ်မှာ -
$1 world
အစားစိတ်ကူးအစား:
hello world
အကယ်. သင်သည်အစားထိုးရလဒ်တွင် ဒေါ်လာ 1 သုံးလိုပါကပုံမှန်အသုံးအနှုန်းတွင်သက်ဆိုင်ရာဖမ်းယူနိုင်သည့်အုပ်စုတစ်စုရှိကြောင်းသေချာစေရမည်။
ဥပမာအားဖြင့်,
$pattern = '(hello)';
$replacement = '$1 world';
$subject = 'hello';
echo mb_eregi_replace($pattern, $replacement, $subject);
output ရလဒ် -
hello world
သတိပြုရန်:
Capture Grouping ကိုဖော်ပြရန်အပိုင်းကိုခြုံရန်ကွင်းကိုအခြုံရန်ကွင်းများကိုသုံးပါ။
ကိုက်ညီသော string တစ်ခုလုံးကိုသာဖမ်းယူနိုင်သည့်တိုင် ဒေါ်လာ 1 ကို သုံးနိုင်သည်။
အချို့သောပုံမှန်အစားထိုးလုပ်ဆောင်ချက်များတွင် ဒေါ်လာ 0 သည် ကိုက်ညီသော string တစ်ခုလုံးကိုကိုယ်စားပြုသည်။ ကံမကောင်းစွာဖြင့် MB_eregi_replace သည် ဒေါ်လာ 0 ကို မထောက်ပံ့ပါ။ အုပ်စုများတွင် ဒေါ်လာ 1 , 2 ဒေါ်လာ အထိရည်ညွှန်းနိုင်သည်။
အကယ်. အုပ်စုတစ်ခုထည့်ရန်ပုံစံကိုပြုပြင်ရန်အတွက်အဆင်မပြေပါက MB_ereg_replace_Callback ကဲ့သို့သော callback function များကိုထောက်ပံ့သောအစားထိုးလုပ်ဆောင်ချက်တစ်ခုကိုသုံးနိုင်သည်။
ဥပမာ -
$pattern = 'hello';
$subject = 'hello';
$result = mb_ereg_replace_callback($pattern, function ($matches) {
// $matches[0] ဒါဟာတစ်ခုလုံးကိုပွဲစဉ်ပါပဲ
return $matches[0] . ' world';
}, $subject);
echo $result;
ထုတ်လုပ်မှု -
hello world
MB_eregi_replace သည် Grouping Content ကိုရည်ညွှန်းရန် ဒေါ်လာ 1 နှင့် 2 ဒေါ်လာကို အသုံးပြုသည်။
အုပ်စုဖွဲ့ခြင်းမရှိပါက $ 1 ကို ကိုက်ညီသောအကြောင်းအရာများဖြင့်အစားထိုးခြင်းမရှိပါ။ သို့သော်ပုံမှန်ကြိုးအဖြစ်သတ်မှတ်သည်။
အကယ်. သင်သည်အုပ်စုတစ်ခုကိုမထည့်သွင်းလိုပါကသို့မဟုတ်မတတ်နိုင်ပါကရှုပ်ထွေးသောအစားထိုးမှုကိုအကောင်အထည်ဖော်ရန် callback function ကိုအသုံးပြုရန်အကြံပြုသည်။