လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Preg_replace_callback_array အတွက်ပုံမှန်စကားရပ်ရေးသားခြင်းသည်အချည်းနှီးသောပွဲစဉ်တွင်ဖြစ်သည်

Preg_replace_callback_array အတွက်ပုံမှန်စကားရပ်ရေးသားခြင်းသည်အချည်းနှီးသောပွဲစဉ်တွင်ဖြစ်သည်

M66 2025-06-02

PHP တွင် PREG_RESTER_CALLESTER_CALLASK_ARALBAY function သည်ပုံမှန်အသုံးအနှုန်းမျိုးစုံကိုပေါင်းစပ်ပြီးအစားထိုးစစ်ဆင်ရေးမျိုးစုံကိုကိုင်တွယ်ရန်ပေါင်းစပ်ထားသောခေါ်ဆိုမှုများကိုပေါင်းစပ်နိုင်သည့်အလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ အဆင်ပြေသော်လည်းတစ်ခါတစ်ရံတွင်ပုံမှန်အသုံးအနှုန်းများသည် "အချည်းနှီးသောပွဲစဉ်" ကိုပြန်လာနိုင်သည့်ပြ a နာရှိနိုင်သည်။ ဆိုလိုသည်မှာ regex သည်တစ်စုံတစ်ရာကိုအောင်မြင်စွာလိုက်လျောညီထွေဖြစ်အောင်အောင်မြင်သော်လည်းအမှန်တကယ်အစားထိုးခြင်းကိုမပေးပါ။ ဒီဆောင်းပါးမှာဘာကြောင့်ဒီပြ problem နာကိုဘယ်လိုရှောင်ရှားရသလဲဆိုတာကိုလေ့လာမယ်။

1 ။ preg_replace_callback_array ၏ခြုံငုံသုံးသပ်ချက်

Preg_replace_callback_array သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး Keys ပုံမှန်အသုံးအနှုန်းများနှင့်တန်ဖိုးများသည် callback functions များဖြစ်သည်။ လုပ်ဆောင်ချက်သည်သတ်မှတ်ထားသောပုံမှန်အသုံးအနှုန်းနှင့်ကိုက်ညီပြီးကိုက်ညီသောရလဒ်ကိုလုပ်ဆောင်ရန်သက်ဆိုင်ရာ callback function ကိုအသုံးပြုသည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject);
  • $ patternals_and_callbacks : ဤသည်မှာသော့တစ်ခုစီသည်ပုံမှန်စကားရပ်တစ်ခုဖြစ်ပြီးတန်ဖိုးတစ်ခုစီသည် callback function တစ်ခုဖြစ်ပြီးတန်ဖိုးတစ်ခုစီသည် callback function တစ်ခုဖြစ်သည်။

  • $ အကြောင်းအရာ - လုပ်ငန်းများ၌တင်ရန် string ကို။

ဤလုပ်ဆောင်ချက်သည်ပုံမှန်အသုံးအနှုန်းတစ်ခုစီကိုပြင်ဆင်ခြင်းနှင့်ကိုက်ညီသောအကြောင်းအရာများကိုပြုပြင်ခြင်းအတွက် callback function သို့သွားပါလိမ့်မည်။

2 ။ အချည်းနှီးသောကိုက်ညီဘို့အကြောင်းပြချက်

NULL ပွဲစဉ်၏ပြ problem နာသည်ပုံမှန်အသုံးအနှုန်းများနှင့်ပြန်လည်ခေါ်ဆိုမှုများ၏ယုတ္တိဗေဒနှင့် preg_replace_callback_array ၏လုပ်ငန်းယန္တရားနှင့်သက်ဆိုင်သည်။ ဤတွင်အချို့သောဘုံအကြောင်းပြချက်များ:

1 ။ ပုံမှန်အသုံးအနှုန်းတွေအတွက်မဟုတ်လောလောလောဘပွဲ

ပုံမှန်အသုံးအနှုန်းများတွင်လောဘမရှိသလောက်လောလောလောလော သို့မဟုတ် +? သို့မဟုတ် +? သို့မဟုတ် +) ကိုအသုံးပြုပါက၎င်းသည်အချည်းနှီးသော string နှင့်ကိုက်ညီနိုင်သည်။ ဥပမာအားဖြင့်:

 $patterns = [
    '/<a.*?>/' => function($matches) {
        return 'သံကွင်းဆက်';
    },
];

$text = '<a href="http://m66.net">Click here</a>';
$result = preg_replace_callback_array($patterns, $text);

ဤကိစ္စတွင် <a ။ *? >> ပုံမှန်စကားရပ်သည် <a> tag နှင့်ကိုက်ညီသော်လည်း, ၎င်းကိုရှောင်ရှားရန်သင်ပိုမိုတိကျစွာလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ရန်ပုံမှန်အသုံးအနှုန်းကိုပြင်ဆင်ရန်စဉ်းစားပါ။

2 ။ callback function ၏ပြန်လာတန်ဖိုးမှာဗလာဖြစ်သည်

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

 $patterns = [
    '/<a href="http:\/\/m66.net.*?">.*?<\/a>/' => function($matches) {
        return ''; // တစ် ဦး အချည်းနှီး string ကိုပြန်သွားပါ
    },
];

$text = '<a href="http://m66.net">Click here</a>';
$result = preg_replace_callback_array($patterns, $text);

ဤဥပမာတွင် callback function သည် string ကိုအချည်းနှီးသော string တစ်ခုသို့ပြန်ပို့သည်

3 ။ ပုံမှန်စကားရပ်ကိုက်ညီမှုအကွာအဝေးကျယ်ပြန့်သည်

အကယ်. Regex ကိုကျယ်ကျယ်ပြန့်ပြန့်ရေးသားထားပါက၎င်းသည်မလိုအပ်သောအကြောင်းအရာနှင့်ကိုက်ညီမှုရှိနိုင်သည်။ ဥပမာအားဖြင့်, ပုံမှန်စကားရပ်သည် fuzzy သည်အလွန်ဆိုးရှားနေပါက၎င်းသည်မသက်ဆိုင်သော NULL ဇာတ်ကောင်များသို့မဟုတ်အခြားအကြောင်းအရာများနှင့်ကိုက်ညီနိုင်သည်။ ဤအရာကိုရှောင်ရှားရန်ပုံမှန်ဖော်ပြချက်သည်တတ်နိုင်သလောက်တိကျပြီးသင်အစားထိုးရန်လိုအပ်သည့်အစိတ်အပိုင်းများနှင့်ကိုက်ညီကြောင်းသေချာစေသင့်သည်။

4 ။ URL ကိုက်ညီခြင်းနှင့်အစားထိုးခြင်း

URLs များကိုပြုပြင်သည့်အခါ, အထူးသဖြင့် URL များနှင့်ကိုက်ညီရန်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုသောအခါအစားထိုးစဉ်အတွင်းတိကျသောဒိုမိန်းအမည်ကိုက်ညီမှုရှိနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် URL အားလုံးနှင့်ကိုက်ညီသောပုံမှန်စကားရပ်ကိုအသုံးပြုပါက -

 $patterns = [
    '/https?:\/\/[a-zA-Z0-9.-]+/' => function($matches) {
        // အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ m66.net
        return str_replace(parse_url($matches[0], PHP_URL_HOST), 'm66.net', $matches[0]);
    },
];

$text = 'Visit http://example.com or https://m66.net for more info.';
$result = preg_replace_callback_array($patterns, $text);

ဤကုဒ်၏ရည်ရွယ်ချက်မှာ URL domain name ကို M66.net ဖြင့်အစားထိုးရန်ဖြစ်သည်။ သို့သော်ပုံမှန်စကားရပ်သည် URL ကိုမှန်ကန်စွာမကိုက်ညီပါက URL ကိုယ်တိုင်သည်အချည်းနှီးဖြစ်သည်သို့မဟုတ်မှားယွင်းစွာပုံစံချသည်။

3 ။ ဖြေရှင်းနည်း

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

  1. တိကျစွာပုံမှန်အသုံးအနှုန်းတွေကိုရေးပါ - ပုံမှန်အသုံးအနှုန်းတွေကကျွန်ုပ်တို့အစားထိုးဖို့လိုတာကိုအတိအကျကိုက်ညီအောင်လုပ်ပေးပါ,

  2. callback function ၏ပြန်လာတန်ဖိုးကိုစစ်ဆေးပါ - သင်မျှော်လင့်ထားသည့်အပြုအမူမဟုတ်လျှင် callback function ကိုအချည်းနှီးသော string ကိုမပြန်ပါစေနှင့်။ အကယ်. သင်သည်ပွဲတစ်ခုကိုဖျက်ရန်လိုပါက Null string အစား Null သို့မဟုတ်သင့်လျော်သောအစားထိုးတန်ဖိုးကိုစဉ်းစားပါ။

  3. ပုံမှန်အသုံးအနှုန်းများကို debugging : သင်မျှော်လင့်ထားသည့်အရာနှင့်ကိုက်ညီမှုရှိစေရန်ပထမ ဦး ဆုံးလုပ်ဆောင်မှုများမှတဆင့်ပထမ ဦး ဆုံးထုတ်ဖော်ပြောဆိုခြင်းကိုပထမ ဦး စွာ debug လုပ်နိုင်သည်

  4. လောဘနှင့်ကိုက်ညီခြင်း - အချို့သောကိစ္စရပ်များတွင်လောဘနှင့်လိုက်ဖက်ခြင်း ( * , + ) တွင်ပိုမိုထိရောက်နိုင်သည်။

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

Preg_replace_callback_array သည်အဆင်ပြေသောအစားထိုးလုပ်ငန်းများအတွက်ခွင့်ပြုထားသောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်အသုံးပြုရန်အတွက်ကျွန်ုပ်တို့သည်အစားထိုးရန်လိုအပ်သည့်အကြောင်းအရာများကိုရှောင်ရှားရန်လိုအပ်သောအကြောင်းအရာများကိုတိကျစွာကိုက်ညီစေရန်သေချာစေရန်ပုံမှန်အသုံးအနှုန်း၏ဒီဇိုင်းကိုကျွန်ုပ်တို့ဂရုပြုရန်လိုအပ်သည်။ ပုံမှန်အသုံးအနှုန်းများကိုတိကျစွာရေးသားခြင်းအားဖြင့် callback function ကိုမှန်ကန်စွာပြန်ပို့ခြင်းအားဖြင့်, လိုက်ဖက်သည့်ယုတ္တိဗေဒကို debing လုပ်ခြင်းအားဖြင့်အချည်းနှီးသောယုတ္တိဗေဒဆိုင်ရာပြ problem နာကိုဖြေရှင်းနိုင်သည်။

ဤဆောင်းပါးကိုလေ့လာခြင်းမှတစ်ဆင့်ပုံမှန်ဖော်ပြချက်များသည်အဘယ်ကြောင့်တရားမျှတမှုပွဲများကိုဖြစ်ပေါ်စေပြီးဤပြ problem နာကိုအမှန်တကယ်ဖြစ်ပေါ်စေကြောင်းနှင့်ဤပြ problem နာကိုအဘယ်ကြောင့်ရှောင်ရှားရကြောင်းမျှော်လင့်ပါသည်။