PHP တွင် PHP တွင် Preg_replace_callback_array () သည်အလွန်အစွမ်းထက်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည်ပုံမှန်အသုံးအနှုန်းများကိုခင်းကျင်းစွာအစားထိုးရန်နှင့်ပုံမှန်ဖော်ပြချက်အတွက် callback function ကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ ဒီ function ဟာအစွမ်းထက်ပေမယ့်အစုရှယ်ယာသုံးစွဲမှုကြောင့်စတင်သုံးစွဲသူတွေအပေါ်နားလည်ဖို့အခက်တွေ့နေတယ်။ ဒါကြောင့်ဒီနေ့ခေတ်မှာ Preg_replace_callback_array () ကို ဘယ်လိုအားယူနိုင်မလဲ။
အခြေခံ syntax preg_replace_callback_array () ၏အောက်ပါအတိုင်းဖြစ်သည် -
preg_replace_callback_array(array $patterns, array $replace, string $subject): string
$ ပုံစံများ - Associative Array, သော့သည်ပုံမှန်အသုံးအနှုန်းပုံစံဖြစ်ပြီးတန်ဖိုးသည်သက်ဆိုင်ရာ callback function ဖြစ်သည်။
$ အစားထိုး : အစားထိုးရန်လိုအပ်သည့်ပစ်မှတ် string ကို။
$ ဘာသာရပ် - ပုံမှန်စကားရပ်ကိုအသုံးချမည့်ရည်မှန်းချက်ပန်းတိုင်။
callback တစ်ခုချင်းစီသည်လိုက်ဖက်သည့်ရလဒ်ခင်းကျင်းမှုကိုရရှိမည်ဖြစ်ပြီးသင် calnback function တွင်ပိုမိုရှုပ်ထွေးသောအကြောင်းအရာကိုဖြည့်ဆည်းပေးနိုင်ပြီးအစားထိုးအကြောင်းအရာများကိုပြန်ပေးနိုင်သည်။
PREG_RESTER_CALLALBAKE_ARALBAKE_ARRAY () ၏ခေါ်ဆိုမှုနည်းလမ်းသည်အထူးသဖြင့်ပုံမှန်အသုံးအနှုန်းမျိုးစုံပြုလုပ်ရန်လိုအပ်သည့်အခါပိုမိုရှုပ်ထွေးသည်။ ဤလုပ်ဆောင်မှုကို encapsulating အားဖြင့်ကျွန်ုပ်တို့သည်မိတ္တူပွားများကိုလျှော့ချရန်, ကုဒ်ဖတ်ရှုခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်အောင်လုပ်ပြီးခေါ်ဆိုမှုနည်းလမ်းကိုပိုမိုရိုးရှင်းစေနိုင်သည်။
PREG_RELE_CALLASTACE_ACALLBAKE_ARRAY () ကို လွယ်ကူစွာရိုးရှင်းအောင်လုပ်ရန် pregapplace_callback_Array သို့ encapsulate လုပ်နိုင်သည်။
/**
* မျိုးစုံပုံမှန်စကားရပ်အစားထိုးစစ်ဆင်ရေးကိုင်တွယ်
*
* @param string $subject ပစ်မှတ် string ကို
* @param array $patterns အစားထိုး mode ကိုနှင့် callback function ကိုမြေပုံ
* @return string အစားထိုး string ကိုပြန်လည်ရောက်ရှိ
*/
function replaceWithCallbacks(string $subject, array $patterns): string {
return preg_replace_callback_array($patterns, $subject);
}
ဤလုပ်ဆောင်ချက်၏အဓိကအချက်မှာ Preg_replace_callback_Array () ကို ရိုးရိုး ရှင်းရှင်းလုပ်ဆောင်ချက် နှင့်ပုံမှန်စကားရပ်ပုံစံများနှင့် callback function များပါ 0 င်သော array $ ပုံစံများကို လက်ခံသည့်ရိုးရှင်းသော function တစ်ခုအဖြစ်ဖြစ်သည်။ ဤနည်းအားဖြင့်အသုံးပြုသူသည်ရှုပ်ထွေးသောပုံမှန်စကားရပ်လိုက်ဖက်ခြင်းနှင့် callback fundition settings ကိုကိုင်တွယ်ဖြေရှင်းခြင်းမရှိဘဲပစ်မှတ် string ကိုနှင့်ပုံစံပြန်ပို့မြေပုံပေါ်တွင်သာလွှဲပြောင်းပေးရသည်။
ဒီ encapsulation function ကိုဘယ်လိုသုံးရမယ်ဆိုတာကိုပြဖို့ကွန်ကရစ်ဥပမာတစ်ခုကိုသုံးကြစို့။ ကျွန်ုပ်တို့တွင်ရက်စွဲအမျိုးမျိုး ( 2023-04-21 ) တွင်ပါ 0 င်သော target string တစ်ခုရှိသည်ဆိုပါစို့ ။
$patterns = [
'/(\d{4})-(\d{2})-(\d{2})/' => function($matches) {
return $matches[1] . 'ခုနှစ်' . $matches[2] . 'လ' . $matches[3] . 'နေ့';
}
];
$subject = "ဒီနေ့ 2023-04-21,မနက်ဖြန် 2023-04-22。";
$replaced = replaceWithCallbacks($subject, $patterns);
echo $replaced;
ထုတ်လုပ်မှု -
ဒီနေ့ 2023ခုနှစ်04လ21နေ့,မနက်ဖြန် 2023ခုနှစ်04လ22နေ့。
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ပုံမှန်အစားထိုးလုပ်ငန်းများကိုခေါ်ဆိုမှုတစ်ခုသို့အလွယ်တကူရိုးရှင်းစေရန် EncapsulewithCallbacks () function ကိုအသုံးပြုသည်။
တစ်ခါတစ်ရံတွင်အစားထိုးလုပ်ငန်းစဉ်အတွင်းတိကျသော URL ကိုအလိုအလျောက်ပြုပြင်လိုသည်။ ဥပမာအားဖြင့်, ဒိုမိန်းအမည်အားလုံးကို M66.net ဖြင့်အစားထိုးပါ။ ဤအရာကိုအောင်မြင်ရန်ကျွန်ုပ်တို့၏ကိရိယာလုပ်ငန်းများကိုတိုးချဲ့နိုင်သည်။
/**
* အလိုအလျောက်အစားထိုး URL အတွက်ဒိုမိန်းအမည် m66.net
*
* @param string $subject ပစ်မှတ် string ကို
* @return string အစားထိုး string ကိုပြန်လည်ရောက်ရှိ
*/
function replaceUrlsWithM66(string $subject): string {
$patterns = [
'/https?:\/\/([a-zA-Z0-9-]+)(\.[a-zA-Z0-9-]+)+/' => function($matches) {
return 'https://' . 'm66.net';
}
];
return replaceWithCallbacks($subject, $patterns);
}
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် m66.net နှင့်အတူပစ်မှတ် string တစ်ခုအတွက် URL domains အားလုံးကိုအစားထိုးသည့် function revesturlswithm66 () ကိုဖန်တီးသည်။ အသုံးပြုနည်းကိုအောက်ပါအတိုင်းဖြစ်သည် -
$subject = "ကျွန်တော်တို့ရဲ့ site ကိုသွားပါ https://example.com သို့မဟုတ် https://test.com ပိုမိုသိရှိလိုပါကရယူပါ。";
$replaced = replaceUrlsWithM66($subject);
echo $replaced;
ထုတ်လုပ်မှု -