ရှုပ်ထွေးသောစာသားအစားထိုးခြင်းကိုကိုင်တွယ်ရန် Preg_replace_callback_array ကိုအသုံးပြုသောအခါပုံမှန် callback function များကို debugg လုပ်ခြင်းနှင့်ယုတ္တိဗေဒမှန်ကန်မှုရှိမရှိဆုံးဖြတ်ရန်လိုအပ်သည်။ PHP သည်အလွန်လက်တွေ့ကျသော debugging functions နှစ်ခုကိုထောက်ပံ့ပေးသည်။ Var_Dump () နှင့် Print_r ()) ။ ဤဆောင်းပါးသည် PREG_RESTERLE_CALALALBAKE_ARRAY တွင်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုဤလုပ်ဆောင်မှုနှစ်ခု၏အကူအညီဖြင့်ပုံမှန် callback ယုတ္တိဗေဒကိုမည်သို့သရုပ်ဖော်ရမည်ကိုဥပမာအားဖြင့်ပြသပါမည်။
PREG_RESTER_CALLBASKBAKE_ARRAY () PHP 7.0 နှင့်အထက်တို့မှပေးသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်ပုံမှန်ဖော်ပြချက်များနှင့် callback function များဖြင့်ဖွဲ့စည်းထားသောအပေါင်းအသင်းခင်းကျင်းမှုကိုဖြတ်သန်းရန်ခွင့်ပြုသည်။ ၎င်းသည်ကိုက်ညီသောစာသားကိုဖြတ်သန်းသွားပါလိမ့်မည်။
preg_replace_callback_array(array $patterns_and_callbacks, string $subject, int $limit = -1, int &$count = null): string
Preg_replace_callback နှင့်နှိုင်းယှဉ်လျှင်၎င်းသည်ပုံမှန်အသုံးအနှုန်းမျိုးစုံနှင့် callback function မျိုးစုံကိုပိုမိုရှင်းလင်းစွာယုတ္တိဗေဒနှင့်ပိုမိုအားကောင်းသည့်ပမာဏဖြင့်ကိုင်တွယ်နိုင်သည်။
ကျွန်ုပ်တို့သည်အမှတ်အသားများနှင့်စိတ်ကြိုက် {code}} tags များကိုရောနှောထားသောစာသားအပိုင်းအစတစ်ခုရှိသည်ဆိုပါစို့ ။
$text = 'ကိုနှိပ်ပါ [ဒီမှာ](https://m66.net) အသေးစိတ်ကိုစစ်ဆေးပါ,သို့မဟုတ်အသုံးပြုပါ {{print_name}} ပေြာင်းလဲတတ်သော。';
ကျွန်ုပ်တို့သည်ပုံစံနှစ်ခုကို သတ်မှတ်. သူတို့၏သက်ဆိုင်ရာ callback လုပ်ဆောင်ချက်များကိုသတ်မှတ်သည်။
$patterns = [
// ကိုက်ညီ markdown သံကွင်းဆက်:[ဖတ်စာ](URL)
'/\[(.*?)\]\((.*?)\)/' => function ($matches) {
echo "ကိုက်ညီ到 markdown သံကွင်းဆက်:\n";
print_r($matches);
return '<a href="' . htmlspecialchars($matches[2]) . '">' . htmlspecialchars($matches[1]) . '</a>';
},
// ကိုက်ညီ {{ပေြာင်းလဲတတ်သော}} ပုံသဏ္ဌာန်
'/\{\{(.*?)\}\}/' => function ($matches) {
echo "ကိုက်ညီ到ပေြာင်းလဲတတ်သော标签:\n";
var_dump($matches);
$variableName = $matches[1];
// 模拟ပေြာင်းလဲတတ်သော替换
$variables = [
'print_name' => 'အသုံးပြုသူ'
];
return isset($variables[$variableName]) ? $variables[$variableName] : '';
}
];
$result = preg_replace_callback_array($patterns, $text);
echo "\nနောက်ဆုံးအစားထိုးရလဒ်:\n" . $result;
ကိုက်ညီ到 markdown သံကွင်းဆက်:
Array
(
[0] => [ဒီမှာ](https://m66.net)
[1] => ဒီမှာ
[2] => https://m66.net
)
ကိုက်ညီ到ပေြာင်းလဲတတ်သော标签:
array(2) {
[0]=>
string(17) "{{print_name}}"
[1]=>
string(10) "print_name"
}
နောက်ဆုံးအစားထိုးရလဒ်:
ကိုနှိပ်ပါ <a href="https://m66.net">ဒီမှာ</a> အသေးစိတ်ကိုစစ်ဆေးပါ,သို့မဟုတ်အသုံးပြုပါ အသုံးပြုသူ ပေြာင်းလဲတတ်သော。
Clear_r () ကို သုံးပါ။
Var_Dump () ကိုအသုံးပြုပြီးဒေတာအမျိုးအစားများကိုကြည့်ရှုရန်အချက်အလက်အမျိုးအစားများကိုကြည့်ရှုရန်အထူးသဖြင့်အသုံးဝင်သည်။
ဝက်ဘ်စာမျက်နှာ output ညစ်ညမ်းမှုကိုညစ်ညမ်းစေသည့်အချက်အလက်များကိုဖယ်ရှားခြင်းမှရှောင်ရှားရန် CLI သို့မဟုတ် log file တွင် debug လုပ်ရန်အကြံပြုသည်။
output ကိုသပ်သပ်ရပ်ရပ်ဖြစ်အောင်အွန်လိုင်းမသွားမီ debug ထုတ်ပြန်ချက်များအားလုံးကိုဖယ်ရှားပါသို့မဟုတ်မှတ်ချက်ပေးပါ။
Preg_replace_callback_array သည် အစွမ်းထက်သော matchi mode ကိုပုံမှန်အစားထိုးစွမ်းရည်များပေးသည်။ Debugging Stage တွင် Var_Dump () နှင့် Print_r ()) နှင့်ပေါင်းစပ်ပြီးလိုက်ဖက်သည့်အခြေအနေကိုလျင်မြန်စွာနားလည်ရန်နှင့်ယုတ္တိဗေဒမှန်ကန်မှုရှိ, ဤ debugging နည်းလမ်းကိုကျွမ်းကျင်သောနည်းစနစ်သည်ရှုပ်ထွေးသောစာသားပြုပြင်ခြင်းလုပ်ငန်းများကိုကိုင်တွယ်ရာတွင်သင်၏ထိရောက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။