PREG_RELE_CALLBASK_ARALBAKE_ARRAY () သည်ပုံမှန်အသုံးအနှုန်းများကိုအစားထိုးခြင်းလုပ်ငန်းများကိုအစားထိုးလုပ်ဆောင်မှုများပြုလုပ်ရန် callback function များကိုခေါ်ဆိုသည့် PHP တွင်အလွန်အစွမ်းထက်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ပုံမှန်အသုံးအနှုန်းပုံစံများနှင့် callback function များဖြင့်ဖွဲ့စည်းထားသော Associative ခင်းကျင်းမှုကိုဖြတ်သန်းခြင်းဖြင့်အစားထိုးလုပ်ငန်းများကိုအကောင်အထည်ဖော်ခြင်းဖြင့်အကောင်အထည်ဖော်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုကာလအတွင်း callback fundition ၏ပြန်လာတန်ဖိုးရှိအမှားကြောင့်အစားထိုးပျက်ကွက်ခြင်းပြ problem နာကိုသင်ကြုံတွေ့ရနိုင်သည်။
PREG_RESTERLE_CALLBASK_ARRAY () function ကို parameters နှစ်ခုကိုလက်ခံရရှိသည်။
ပုံစံများ - သော့သည်ပုံမှန်စကားရပ်ပုံစံဖြစ်သော actiretive array တစ်ခုနှင့်တန်ဖိုးသည်သက်ဆိုင်ရာ callback function ဖြစ်သည်။
အကြောင်းအရာ - အစားထိုးရန်ကွပ်မျက်ရန်လိုအပ်သည့်ပစ်မှတ် string ကို။
ဤလုပ်ဆောင်ချက်ကိုခေါ်သည့်အခါ၎င်းသည်ပုံမှန်အသုံးအနှုန်းတစ်ခုစီကိုအလှည့်အပြောင်းနှင့်လိုက်ဖက်သောရလဒ်အပေါ် အခြေခံ. callback function ကိုလုပ်ဆောင်သည်။
callback function သည်မူရင်းကိုက်ညီသောအပိုင်းကိုအစားထိုးမည့် string အသစ်တစ်ခုကိုပြန်ပို့ရမည်။ အကယ်. callback function ကို ( Null , မှားယွင်းသော သို့မဟုတ်အခြား string မဟုတ်သောအမျိုးအစားများ) တရားမ 0 င်သောတန်ဖိုးကိုပြန်ပေးပါကအစားထိုးစစ်ဆင်ရေးသည်ကျရှုံးလိမ့်မည်။
ဥပမာအားဖြင့်, ကျွန်ုပ်တို့သည် Preg_replace_callback_array () URL တွင် domain name ကိုအစားထိုးရန်ကျွန်ုပ်တို့အသုံးပြုသည်ဆိုပါစို့။ ပြန်လာတန်ဖိုးသည်မျှော်လင့်ချက်များနှင့်မကိုက်ညီပါကသို့မဟုတ် callback function သည် string ကိုမှန်ကန်စွာမပြန်ပါ။
$patterns = [
'/https?:\/\/[\w\-\.]+/i' => function($matches) {
// အစားထိုးဒိုမိန်းအမည်ကိုမှန်ကန်စွာပြန်သွားပါ
return str_replace(parse_url($matches[0], PHP_URL_HOST), 'm66.net', $matches[0]);
}
];
$subject = "ဝင်ရောက်ခွင့် https://www.example.com သို့မဟုတ် http://www.test.com ဝဘ်0င်းက္ပုဒ်စာတမ်း。";
$result = preg_replace_callback_array($patterns, $subject);
echo $result;
အထက်ဖော်ပြပါကုဒ်သည် https://www.example.com နှင့် http://www.test.com နှင့် http://www.test.com ဖြင့် အစားထိုးလိမ့်မည်။
အကယ်. callback function သည် တရားမဝင် သို့မဟုတ် မှားယွင်းသော အနေဖြင့်မမှန်ကန်သောတန်ဖိုးကိုပြန်ပို့ပါကအစားထိုးကျသည်။ ဥပမာအားဖြင့်:
$patterns = [
'/https?:\/\/[\w\-\.]+/i' => function($matches) {
// အမှားပြန်လာတန်ဖိုး:ပြန်လာ null
return null;
}
];
$subject = "ဝင်ရောက်ခွင့် https://www.example.com သို့မဟုတ် http://www.test.com ဝဘ်0င်းက္ပုဒ်စာတမ်း。";
$result = preg_replace_callback_array($patterns, $subject);
echo $result;
ယခုအချိန်တွင်ပြန်လာသော Null သည်အစားထိုးစစ်ဆင်ရေးကိုဖြစ်ပေါ်စေသည်။ Preg_replace_callback_array () function သည်အစားထိုးရန်အတွက်အစားထိုးခြင်းကမူရင်း string ကိုအစားထိုးရန်စဉ်းစားလိမ့်မည်။
Preg_replace_callback_array () သည် callback function ၏ပြန်လာတန်ဖိုးကို အခြေခံ. အစားထိုးလုပ်ဆောင်လိမ့်မည်။ Callback function မှရရှိသောတန်ဖိုးသည်မှန်ကန်သော string ကိုမဖွဲ့စည်းနိုင်ပါက PHP သည်မူရင်းကိုက်ညီသောအပိုင်းကို အစားထိုး. မရပါ, အစားထိုးစစ်ဆင်ရေးတစ်ခုလုံးကိုပျက်ပြားစေသည်။ အစားထိုးခွဲစိတ်ကုသမှုအောင်မြင်ရန်သေချာစေရန် callback function သည်ခိုင်လုံသော string ကိုပြန်ပို့ပေးရမည်။
PHP တွင် PREG_RELE_CALLESTER_CALLBASKBAKE_ARRAY () အမှားတစ်ခုပြန်ပို့ရန်သင့်အားအချက်ပေးရန်ချွင်းချက်မချထားပါ။ ၎င်းသည်အသံတိတ်ကိုတိတ်ဆိတ်စွာကျော်သွားပြီးအစားထိုးရလဒ်များကိုသင်၏မျှော်လင့်ချက်များနှင့်ကိုက်ညီမှုမရှိပါ။
ဤပြ problem နာကိုရှောင်ရှားရန်ပြန်လာသည့် string type သည်အမြဲတမ်းခိုင်လုံသော string type ကိုသေချာစေရန် callback function အတွင်းရှိ Return Return Value တွင်စစ်ဆေးမှုတစ်ခုထည့်နိုင်သည်။ Return Value သည်အချည်းနှီးဖြစ်သောသို့မဟုတ်မမှန်ကန်ပါက default အစားထိုး string ကိုပြန်ပို့ရန်သို့မဟုတ် debugging ကိုကူညီရန်ချွင်းချက်ချရန်ရွေးချယ်နိုင်သည်။
$patterns = [
'/https?:\/\/[\w\-\.]+/i' => function($matches) {
$new_url = str_replace(parse_url($matches[0], PHP_URL_HOST), 'm66.net', $matches[0]);
// 确保ပြန်လာ值为非空字符串
return !empty($new_url) ? $new_url : $matches[0]; // ထုတ်ပေးလျှင်URLဗလာဖြစ်သော,မူရင်းပွဲစဉ်ကိုသိမ်းထားပါ
}
];
$subject = "ဝင်ရောက်ခွင့် https://www.example.com သို့မဟုတ် http://www.test.com ဝဘ်0င်းက္ပုဒ်စာတမ်း。";
$result = preg_replace_callback_array($patterns, $subject);
echo $result;
ဤနည်းလမ်းသည် calnback function နှင့်ပြ a နာရှိလျှင်ပင်အစားထိုးကျရှုံးမှုကိုရှောင်ရှားနိုင်သည်။
ဒီဆောင်းပါးကဘာကြောင့်ဖုန်းပြန်ပို့တာပါလဲ။ သင့်တွင်မေးခွန်းများပိုများလျှင်မေးခွန်းများမေးရန်အခမဲ့ရယူပါ။