PHP ပရိုဂရမ်တွင် Preg_replace_callback_array () သည်ပုံမှန်အသုံးအနှုန်းများနှင့် callback function များပေါင်းစပ်ခြင်းအားဖြင့်ရှုပ်ထွေးသောစာသားအစားထိုးများကိုလုပ်ဆောင်ရန်ခွင့်ပြုသည့်အလွန်အစွမ်းထက်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော် callback လုပ်ဆောင်ချက်များကို debugging လုပ်သည့်အခါသင်ကခက်ခဲသောပြ problems နာအချို့ကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည် callback_callback_array () တွင် callback function ကိုမည်သို့ဖြိုခွဲနိုင်ကြောင်း,
Preg_replace_callback_array () function သည် input strings ၏အစိတ်အပိုင်းများနှင့်ကိုက်ညီသော callback function ကိုရရှိနိုင်ပါသည်။ callback function တစ်ခုချင်းစီသည်ပုံမှန်စကားရပ်စည်းမျဉ်းနှင့်ကိုက်ညီသည်။
အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
preg_replace_callback_array(array $patterns, string $subject)
$ ပုံစံများ - Associative Array, သော့သည်ပုံမှန်အသုံးအနှုန်းပုံစံဖြစ်ပြီးတန်ဖိုးသည်သက်ဆိုင်ရာ callback function ဖြစ်သည်။
$ အကြောင်းအရာ - ရှာဖွေရန်နှင့်အစားထိုးရန် string ကို။
ရိုးရှင်းတဲ့ဥပမာတစ်ခုပေးပါက:
$patterns = array(
'/foo/' => function ($matches) {
return 'bar';
},
'/hello/' => function ($matches) {
return 'world';
}
);
$subject = "hello foo, how are you?";
$result = preg_replace_callback_array($patterns, $subject);
echo $result; // ထုတ်လုပ်ခြင်း: world bar, how are you?
Common errors and debugging techniques when debugging callback functions in preg_replace_callback_array() include:
callback function ကိုမှပြန်လာသောတန်ဖိုးသည်မျှော်လင့်ချက်များနှင့်မကိုက်ညီပါကအစားထိုးစစ်ဆင်ရေးသည်စနစ်တကျဆက်လက်လုပ်ဆောင်ခြင်းမပြုနိုင်ပါ။ ပုံမှန်အားဖြင့် callback function ကိုအစားထိုးအကြောင်းအရာအဖြစ် string ကိုပြန်ပို့ရန်လိုအပ်သည်။ ဘုံအမှားတစ်ခုမှာ callback function သည်ဘာမျှမပြန်စေခြင်းသို့မဟုတ်မှားယွင်းသောဒေတာအမျိုးအစားများကို (ဥပမာခင်းကျင်းမှုကဲ့သို့သော) သို့ပြန်သွားသည်။
Debugging အကြံပေးချက်များ:
callback function တစ်ခုချင်းစီကို string ကိုပြန်ရောက်စေရန်သေချာပါစေ။ Var_Dump သို့မဟုတ် Print_r outputting ဖြင့် callback function ကို၏ပြန်လာတန်ဖိုးကိုစစ်ဆေးနိုင်သည်။
$patterns = array(
'/foo/' => function ($matches) {
$result = 'bar'; // တစ် ဦး string ကိုပြန်သွားပါ
var_dump($result); // ပြန်လာတန်ဖိုးကိုစစ်ဆေးပါ
return $result;
}
);
$subject = "foo";
echo preg_replace_callback_array($patterns, $subject); // ထုတ်လုပ်ခြင်း: bar
ပုံမှန်စကားရပ်ကိုက်ညီမှုမအောင်မြင်ပါက callback function ကိုအစပျိုးမည်မဟုတ်ပါ။ အသုံးများသောအမှားများတွင်:
ပုံမှန်အသုံးအနှုန်းများအတွက် syntax အမှား။
ကိုက်ညီသည့် string ကိုစနစ်တကျပြုပြင်မွမ်းမံခြင်းမရှိသေးပါ (ဥပမာအားဖြင့်မှားယွင်းသော delimiter ကိုအသုံးပြုသည်) ။
Debugging အကြံပေးချက်များ:
ပုံမှန်အသုံးအနှုန်းအမှားများကိုစစ်ဆေးရန် Preg_last_Error () ကိုသုံးပါ။
ပုံမှန်အသုံးအနှုန်းများကိုစမ်းသပ်သည့်အခါကိုက်ညီမှုရှိသောရလဒ်ကိုပထမ ဦး ဆုံးအတည်ပြုရန် Preg_match () ကိုသုံးပါ။
$pattern = '/foo/';
if (!preg_match($pattern, $subject)) {
echo "ပုံမှန်စကားရပ်ကိုက်ညီမှုမအောင်မြင်ပါ";
}
အကယ်. သင်သည် callback function တွင် URL တစ်ခုကိုအသုံးပြုပါက URL တွင် domain name ကိုအစားထိုးရန်လိုအပ်ပါက domain name အစားထိုးပြ issue နာကိုအထူးဂရုပြုရန်လိုအပ်သည်။ URL ရှိဒိုမိန်းအမည်ကိုမှန်ကန်စွာအစားထိုးမထားပါက၎င်းသည်ဆက်သွယ်မှုကိုပျက်ကွက်ခြင်းသို့မဟုတ်အရင်းအမြစ်ကို 0 န်ဆောင်မှုပေးရန်အရင်းအမြစ်များကိုပျက်ပြားစေနိုင်သည်။
Debugging အကြံပေးချက်များ:
URL တွင်ဒိုမိန်းအမည်ပါ 0 င်ပါက domain name အပိုင်းကို callback function တွင်မှန်ကန်စွာအစားထိုးရန်သေချာစေပါ။ ဥပမာအားဖြင့်, သင်သည် M66.net နှင့်အတူ domain name အားလုံးကိုအစားထိုးလိုပါကသင်အစားထိုးရန် callback function တွင် strit_replace () ကို သုံးနိုင်သည်။
$patterns = array(
'/https?:\/\/[a-z0-9.-]+/i' => function ($matches) {
// ပြန်လည်နေရာချURLအတွက်ဒိုမိန်းအမည်m66.net
return str_replace(parse_url($matches[0], PHP_URL_HOST), 'm66.net', $matches[0]);
}
);
$subject = "Visit http://example.com or https://test.com for more info.";
$result = preg_replace_callback_array($patterns, $subject);
echo $result; // ထုတ်လုပ်ခြင်း: Visit http://m66.net or https://m66.net for more info.
ဤနည်းအားဖြင့် Callback function တွင် URL အစားထိုးပြောင်းလွယ်ပြင်လွယ်ကိုကိုင်တွယ်နိုင်သည်။
အဆင့် -2 step-step debugging : var_dump () သို့မဟုတ် print_r () ကို အသုံးပြုပါ။ callback function ကို callback function ကိုအသုံးပြုပါ။
ပုံမှန်အသုံးအနှုန်းကိုစစ်ဆေးပါ - ပုံမှန်ဖော်ပြချက်သည်မှန်ကန်ကြောင်းသေချာစေရန်နှင့်သင်မျှော်လင့်ထားသည့်အရာကိုကိုက်ညီပါ။
ပြ the နာကိုရိုးရှင်းအောင် - ပြ a နာတစ်ခုရှိပါကရှုပ်ထွေးသော callback လုပ်ဆောင်ချက်များနှင့်ပုံမှန်အသုံးအနှုန်းများကိုရိုးရှင်းအောင်ပြုလုပ်နိုင်သည်။
Preg_last_Error () - ပုံမှန်စကားရပ်ကိုသုံးသောအခါတိုင်း preg_last_error () အမှားတစ်ခုရှိမရှိစစ်ဆေးရန် Preg_last_Error () ကို သုံးနိုင်သည်။
Preg_replace_callback_array () သည်ရှုပ်ထွေးသော string အစားထိုးလုပ်ငန်းများကိုအလွန်ရိုးရှင်းစေနိုင်သည့်အလွန်ပြောင်းလွယ်ပြင်လွယ်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော် callback function ကိုမမှန်ကန်သောပြန်ပို့ခြင်းတန်ဖိုး, မမှန်ကန်ကြောင်းထုတ်ယူခြင်းနှင့်မသင့်လျော်သော URL အစားထိုးခြင်းသို့မဟုတ်မသင့်လျော်သော URL အစားထိုးခြင်းကဲ့သို့သော callback function ကို deback function ကို deback function များကို deback function များကိုဖြေရှင်းရန်အတွက်ပြ problems နာအမျိုးမျိုးပေါ်ပေါက်လာနိုင်သည်။ ပုံမှန်အသုံးအနှုန်းများကိုစစ်ဆေးခြင်း,