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

preg_replace_callback အတွက်ပိုမိုအားကောင်းတဲ့အခြားရွေးချယ်စရာ: Preg_replace_callback_array

M66 2025-06-03

String Replacement ကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ PHP သည်အစွမ်းထက်သောကိရိယာများကိုထောက်ပံ့ပေးသည် သို့သော် PHP 7 မှစ. ပိုမိုအားကောင်းသော function ကိုစတင်မိတ်ဆက်ခဲ့ပြီး Preg_replace_callback_array သည်အလားတူအလုပ်များကိုလုပ်ဆောင်ခြင်းသာမက,

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

1 ။ အခြေခံနိဒါန်း

Preg_replace_callback

Preg_replace_callback သည် ပုံမှန်ပုံစံနှင့် callback function ကိုရရှိပြီး,

ဥပမာ -

 $pattern = ['/foo/', '/bar/'];
$callback = function ($matches) {
    return strtoupper($matches[0]);
};
$text = "foo and bar";
$result = preg_replace_callback($pattern, $callback, $text);
// ရလဒ်: "FOO and BAR"

ပြ problem နာကမူ ကွဲပြားခြားနားသော mode များသည်ယုတ္တိဗေဒလုပ်ငန်းစဉ်အတွက်တူညီသော callback function ကိုသုံးသောကြောင့်ဖြစ်သည်။

2 ။ Preg_replace_callback_array ကိုမိတ်ဆက်ပါ

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

အခြေခံ syntax:

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject)

ဥပမာ -

 $text = "Visit http://m66.net or send mail to info@m66.net";

$result = preg_replace_callback_array([
    // ပြန်လည်နေရာချURL
    '~https?://[^\s]+~' => function ($matches) {
        return '<a href="' . $matches[0] . '">' . $matches[0] . '</a>';
    },
    // ပြန်လည်နေရာချEmail
    '/[\w\.-]+@[\w\.-]+\.\w+/' => function ($matches) {
        return '<a href="mailto:' . $matches[0] . '">' . $matches[0] . '</a>';
    },
], $text);

// ရလဒ်: 'Visit <a href="http://m66.net">http://m66.net</a> or send mail to <a href="mailto:info@m66.net">info@m66.net</a>'

3 ။ အားသာချက်ခွဲခြမ်းစိတ်ဖြာ

? ပိုမိုမြင့်မားသော readability

ပုံစံတစ်ခုစီအတွက်ရှင်းလင်းသော callback function ကိုသတ်မှတ်ခြင်းအားဖြင့် code ယုတ္တိဗေဒသည်ပိုမိုရှင်းလင်းနိုင်ပြီး မည် သည့်ကိုက်ညီမှုပုံစံဖြစ်သည်ကိုဆုံးဖြတ်ရန်အတွက်တူညီသောလုပ်ဆောင်မှုတွင်အသုံးပြုရန်မလိုအပ်တော့ပါ။

? ပိုပြီးပြောင်းလွယ်ပြင်လွယ်

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

? အမှားနည်းခြင်း

ပုံစံတစ်ခုစီသည်သက်ဆိုင်ရာ callback သို့ချည်နှောင်ထားခြင်းကြောင့်ပုံစံမျိုးစုံလုပ်ဆောင်မှုတစ်ခုမျှဝေသောအခါဖြစ်နိုင်သောယုတ္တိရှိသောရှုပ်ထွေးမှုများသို့မဟုတ် mishandling ကိုရှောင်ရှားသည်။

? အမိန့်နှင့်အဓိပ္ပါယ်ကိုထောက်ပံ့သည်

Preg_replace_callback_array သည် intray အမိန့်ဖြင့်အစားထိုးစစ်ဆင်ရေးလုပ်ဆောင်သည်။ ဆိုလိုသည်မှာသင်သည် ဦး စားပေးကိုထိန်းချုပ်နိုင်သည်။

4 ။ လျှောက်လွှာဇာတ်လမ်းများဥပမာ

1 ။ အမျိုးအစား Multi-format တိုတို text parsing (URL, အီးမေးလ်, @username)

 $text = "ကျေးဇူးပြုပြီးလည်ပတ်ပါ http://m66.net,သို့မဟုတ်ဆက်သွယ်ရန် admin@m66.net,သို့မဟုတ် @john ပိုမိုသိရှိရန်。";

$result = preg_replace_callback_array([
    // URL
    '~https?://[^\s]+~' => function ($matches) {
        return '<a href="' . $matches[0] . '">' . $matches[0] . '</a>';
    },
    // Email
    '/[\w\.-]+@[\w\.-]+\.\w+/' => function ($matches) {
        return '<a href="mailto:' . $matches[0] . '">' . $matches[0] . '</a>';
    },
    // @အသုံးပြုသူ
    '/@(\w+)/' => function ($matches) {
        return '<a href="http://m66.net/user/' . $matches[1] . '">@' . $matches[1] . '</a>';
    },
], $text);

ရလဒ်သည်ဖိုရမ်များ, မှတ်ချက်ပေး areas ရိယာများ, chat systems စသည်ဖြင့်သင့်တော်သောစာသားထုတ်လုပ်မှုဖြစ်လာလိမ့်မည်။

5 ။ လိုက်ဖက်တဲ့ဖော်ပြချက်

  • Preg_replace_callback_array ကို PHP 7.0 တွင်မိတ်ဆက်ခဲ့ပြီး , PHP 5.6 ကဲ့သို့သောဗားရှင်းအဟောင်းများတွင်အသုံးပြုပါက အသုံးပြု. မရပါ။

  • PHP ၏အဟောင်းများဗားရှင်းများကိုထောက်ခံအားပေးလိုပါကရိုးရာ preg_replace_callback ကို သာသုံးနိုင်သည်။

ကောက်ချက်

PREG_RESTER_CALLASTBAK_ARRAY သည် အထူးသဖြင့် Modes မျိုးစုံကွဲပြားခြားနားသောအပြောင်းအလဲများကိုလိုအပ်သည့်အခါကျွန်ုပ်တို့အား ပို. ကြော့ရှင်းသောပုံမှန်အစားထိုးဖြေရှင်းချက်ကိုပေးသည်။ အကယ်. သင်၏စီမံကိန်းသည် PHP 70 သို့မဟုတ်နောက်ပိုင်းတွင်အလုပ်လုပ်နေပါက PREG_replace_callback အပေါ် အခြေခံ. မူရင်း multi-mode processing logic ကိုရွှေ့ပြောင်းရန်အထူးအကြံပြုလိုသည်။

PHP ဖွံ့ဖြိုးတိုးတက်မှုသည် "သာအသုံးပြု" ရုံမက "၎င်းကိုသာအသုံးပြု" ရုံမက "သာအသုံးပြု" ရုံသာမကဘဲထိန်းသိမ်းရန်လွယ်ကူသင့်သည်။