လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_ereGi_replace function ကိုအသုံးပြုသည့်အခါအမည်ရှိအုပ်စုဖွဲ့ခြင်းအားမည်သို့အကောင်အထည်ဖော်ရမည်နည်း (MB__eregi_replace သည်ပုံမှန်အုပ်စုဖွဲ့ခြင်းအားဖြင့်မထောက်ပံ့ပါ။

MB_ereGi_replace function ကိုအသုံးပြုသည့်အခါအမည်ရှိအုပ်စုဖွဲ့ခြင်းအားမည်သို့အကောင်အထည်ဖော်ရမည်နည်း (MB__eregi_replace သည်ပုံမှန်အုပ်စုဖွဲ့ခြင်းအားဖြင့်မထောက်ပံ့ပါ။

M66 2025-07-18

PHP တွင် MB_EREGI_replace သည် Multibyte ကြိုးများအတွက်ပုံမှန်အစားထိုးလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည် POSIX ပုံမှန်စကားရပ် syntax အပေါ် အခြေခံ. PCRE ( PREG_ * စီးရီးလုပ်ဆောင်ချက်များ) ကဲ့သို့သောအုပ်စုဖွဲ့ခြင်းအားမထောက်ခံပါ။ အမည်ခံအုပ်စုသည်ပုံမှန်အသုံးအနှုန်းများအချို့အစိတ်အပိုင်းများအတွက်အဓိပ္ပါယ်ရှိသောအမည်များကိုကျင့်သုံးခြင်းနှင့်စာဖတ်ခြင်းကိုလွယ်ကူချောမွေ့စေသည်။

MB_EREGI_replace သည် အုပ်စုဖွဲ့ခြင်းအမည်ရှိသည့်နေရာများအားမထောက်ပံ့သော်လည်းအမည်ရှိအုပ်စု၏အကျိုးသက်ရောက်မှုကိုမည်သို့တုပနိုင်မည်နည်းကိုမိတ်ဆက်ပေးလိမ့်မည်။


1 ။ MB_eregi_replace အပေါ်ကန့်သတ်ချက်များနှင့်အမည်ရှိအုပ်စုများအပေါ်ကန့်သတ်ချက်များ

MB_ereGi_replace မှအသုံးပြုသောပုံမှန် syntax သည် PCRE ပုံစံကိုမပံ့ပိုးပါ

ဥပမာ -

 $pattern = '([a-z]+)'; // ပုံမှန်အုပ်စုဖွဲ့

သို့သော်၎င်းကိုရေးသား။ မရပါ။

 $pattern = '(?<word>[a-z]+)'; // အမည်ရှိအုပ်စုဖွဲ့ကိုမထောက်ပံ့ပါ

ထို့ကြောင့်သင်သည်အဖွဲ့တစ်ဖွဲ့၏အကြောင်းအရာကိုရည်ညွှန်းရန်လိုအပ်ပါက၎င်းကို \ 1 , \ 2 စသည့်ကိန်းဂဏန်းများမှတဆင့်သာညွှန်းနိုင်သည်။


2 ။ "အမည်ရှိအုပ်စု" ၏အကျိုးသက်ရောက်မှုကိုအောင်မြင်ရန်အစားထိုး consback ကိုအစားထိုးပါ။

MB_ereGi_replace ကို အုပ်စုလိုက်ကိုတိုက်ရိုက်မသုံးနိုင်ပေမယ့်အုပ်စုဖွဲ့ခြင်းနှင့်အစားထိုးနေစဉ်အတွင်း callback function များကိုပေါင်းစပ်။ တူအောင်ဖန်တီးနိုင်သည်။

သို့သော် MB_eregi_replace ကိုယ်တိုင်တွင် callback version မရှိပါ။ MB_ereg_search စီးရီးလုပ်ဆောင်ချက်များကိုပထမ ဦး ဆုံးအသုံးပြုရန်, အုပ်စုဖွဲ့ခြင်းအကြောင်းအရာများကိုဖမ်းယူရန်, ထို့နောက် PHP တွင်အစားထိုးယုတ္တိဗေဒကိုအကောင်အထည်ဖော်နိုင်သည်။

နမူနာစီးဆင်းမှု

  1. MB_ereg_Seg_Search_init နှင့် MB_ereG_Serearch ကိုသုံးပါ။

  2. ပွဲတစ်ခုစီပြီးနောက်အုပ်စုလိုက်အကြောင်းအရာများကိုကိုယ်တိုင်ရယူပြီးအစားထိုးသည်။

  3. အမည်ရှိအုပ်စုများဖွဲ့စည်းပုံကိုတုပရန် PHP Array များကိုအသုံးပြုပါ။


3 ။ နမူနာကုဒ်

အောက်ပါကုဒ်သည် MB_ereg_seCearch စီးရီးကို အသုံးပြု. အုပ်စုဖွဲ့ခြင်းအကြောင်းအရာများကိုဖမ်းယူရန်မည်သို့အသုံးပြုရမည်,

 <?php

// string ကိုဆိုင်းငံ့ထား
$text = "User: alice, Email: alice@example.com";

// POSIX ပုံမှန်စတိုင်ပုံမှန်,အုပ်စုနှစ်စု,အသုံးပြုသူအမည်နှင့်အီးမေးလ်
$pattern = 'User: ([a-z]+), Email: ([a-z0-9._%-]+@[a-z0-9.-]+\.[a-z]{2,})';

// ရှာဖွေမှုကိုအစပြုပါ
mb_ereg_search_init($text, $pattern, 'i'); // iအမှုအာရုံမခံစားနိုင်ကြောင်းဖော်ပြသည်

$result = '';
$offset = 0;

while ($match = mb_ereg_search_pos()) {
    // ပွဲ၏ start အနေအထားနှင့်အရှည်ယူပါ
    list($start, $length) = $match;

    // ပြီးပြည့်စုံသောကိုက်ညီ string ကိုရယူပါ
    $fullMatch = mb_substr($text, $start, $length);

    // ဖမ်းမိအုပ်စုဖွဲ့အကြောင်းအရာကိုရယူပါ
    $regs = mb_ereg_search_getregs();

    // အုပ်စုလိုက် cyatuing cyatulate
    $namedGroups = [
        'username' => $regs[1],
        'email' => $regs[2],
    ];

    // အစားထိုးယုတ္တိဗေဒကိုင်တွယ်,ဥပမာအားဖြင့်, Username ကိုစာလုံးအကြီး,အီးမေးလ်၏လျှို့ဝှက်ချက်
    $replacement = "User: " . strtoupper($namedGroups['username']) . ", Email: " . maskEmail($namedGroups['email']);

    // ရလဒ်များ splicing
    $result .= mb_substr($text, $offset, $start - $offset) . $replacement;

    $offset = $start + $length;

    // ဆက်လက်ရှာဖွေပါ
    mb_ereg_search_setpos($offset);
}

// ကျန်အစိတ်အပိုင်းများ splicing
$result .= mb_substr($text, $offset);

echo $result;

// ကူညီသူလုပ်ဆောင်ချက်များကို,အီးမေးလ်အပိုင်းကိုဖျောက်ထားပါ
function maskEmail($email) {
    $parts = explode('@', $email);
    $name = $parts[0];
    $domain = $parts[1];
    $maskedName = substr($name, 0, 1) . str_repeat('*', max(0, strlen($name) - 2)) . substr($name, -1);
    return $maskedName . '@' . $domain;
}
?>

4 ။ ဖော်ပြချက်

  • MB_ereGi_replace ကိုတိုက်ရိုက်မသုံးနိုင်သောကြောင့်ကျွန်ုပ်တို့သည် mb_ereg_seg_segearsearch_init နှင့်ဆက်စပ်သောလုပ်ဆောင်ချက်များကို အသုံးပြု. ကွင်းဆက်ကိုက်ညီမှုနှင့်အစားထိုးခြင်းကိုလက်ဖြင့်ကိုင်တွယ်ရန် MB_ereg_search_init နှင့်ဆက်စပ်သောလုပ်ဆောင်ချက်များကိုအသုံးပြုသည်။

  • Code ကိုရှင်းလင်းရန်ပြင်ဆင်ခြင်းကိုထည့်သွင်းစဉ်းစားရန် $ Regs Array ကိုအသုံးပြုပါ, ကုဒ်ရှင်းလင်းရေးအတွက်ခင်းကျင်းရန်သော့ချက်အမည်များမှတဆင့် "အမည်ရှိအုပ်စု" ကိုတုပပါ။

  • အစားထိုးလုပ်ငန်းစဉ်ကို PHP Code တွင်လုံးဝကိုင်တွယ်ဖြေရှင်းပြီးယုတ်ညံ့သောရှုပ်ထွေးသောယုတ္တိဗေဒကိုအကောင်အထည်ဖော်နိုင်သည်။

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


5 ။ အကျဉ်းချုပ်

MB_ereg_replace function ကို MB_ereg_search Processing Php Php Code processing နှင့်ပေါင်းစပ်ထားသော MB_ereg_search စီးရီးလုပ်ဆောင်ချက်များမှတဆင့် MB_ereg_search စီးရီးလုပ်ဆောင်ချက်များကိုမထောက်ခံပါ။

အကယ် . သင်ပိုမိုရှုပ်ထွေးသောပုံမှန်လုပ်ဆောင်နိုင်မှုကိုလိုအပ်ပါက Grouping Support ကိုခေါ်ယူရန်လိုအပ်ပါက Preg_replace_Callback ကို အသုံးပြုရန်အကြံပြုသည်။