PHP တွင် PREG_RESTER_CALLESTER_CALLASK_ARARAY function သည်ပုံမှန်ဖော်ပြချက်သည်တိကျသောပုံစံနှင့်ကိုက်ညီသည့်အခါအစားထိုးရန် callback function ကိုလုပ်ဆောင်သောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်ရှုပ်ထွေးသော string အစားထိုးခြင်းလုပ်ငန်းများကိုကိုင်တွယ်နိုင်သည်, အထူးသဖြင့်သင်ပုံစံများနှင့် callback function များကိုကိုင်တွယ်လိုပါက၎င်းသည်ပိုမိုတိကျသောနှင့်ထိရောက်သောနည်းကိုထောက်ပံ့ပေးသည်။
Custom tags များကို HTML element များသို့ပြောင်းလဲရန် Preg_replace_callback_array ကို မည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးကရှင်းပြပါမည်။ ကျွန်ုပ်တို့တွင် SuperT_TAG] နှင့် ဆင်တူ သည့်ပုံစံနှင့်အတူစိတ်ကြိုက် tag တစ်ခုရှိသည်ဆိုပါစို့။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် Preg_reTholare_callback_array ၏အခြေခံအသုံးပြုမှုကိုနားလည်ရန်လိုအပ်သည်။ ဤလုပ်ဆောင်ချက်၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
preg_replace_callback_array(array $patterns_and_callbacks, string $subject);
$ patternals_and_callbacks : ပုံမှန်အသုံးအနှုန်းတွေနဲ့ callback function တွေပါတဲ့အပေါင်းအသင်းဆိုင်ရာခင်းကျင်းမှုပါ။ တစ်ခုချင်းစီကိုပုံမှန်ဖော်ပြမှုကို input string ကိုအသုံးပြုသည်, ကိုက်ညီသည့်အခါနှင့်ကိုက်ညီသည့် callback function ကိုကွပ်မျက်ခံရသည်။
$ အကြောင်းအရာ - ကိုက်ညီရန်နှင့်အစားထိုးရန် input string ကိုဖြစ်ပါတယ်။
ကျွန်ုပ်တို့၏တာဝန်မှာအောက်ပါဓလေ့ထုံးစံ tags များကို HTML element များသို့ပြောင်းလဲရန်ဖြစ်သည်ဆိုပါစို့။
[Custom_tag] <div class = "စိတ်ကြိုက်-tag"> tag ကိုပြောင်းပါ
[twoTag] <span class = "အခြား-tag"> tag ကိုပြောင်းပါ
နောက်တစ်ခုက code ကို Preg_replace_callback_array ကိုသုံးပြီးဒီအသွင်ပြောင်းမှုကိုဖြည့်စွက်ဖို့ကုဒ်ကိုရေးတယ်။
<?php
// string ကိုရိုက်ထည့်ပါ,စိတ်ကြိုက် tags များပါဝင်သည်
$input_string = "ဒါကပါ 0 င်သည်[custom_tag]ကပ်တံဆိပ်[/custom_tag]နှင့်[another_tag]ကပ်တံဆိပ်[/another_tag]ရာထူးဥပမာ。";
// 定义正则表达式နှင့်回调函数
$patterns_and_callbacks = [
'/\[custom_tag\](.*?)\[\/custom_tag\]/s' => function ($matches) {
return "<div class='custom-tag'>" . htmlspecialchars($matches[1]) . "</div>";
},
'/\[another_tag\](.*?)\[\/another_tag\]/s' => function ($matches) {
return "<span class='another-tag'>" . htmlspecialchars($matches[1]) . "</span>";
}
];
// အသုံးပြု preg_replace_callback_array အစားထိုးပါစေ
$result = preg_replace_callback_array($patterns_and_callbacks, $input_string);
// ရလဒ်ရလဒ်
echo $result;
?>
PREG_RESTER_CALLASTBACK_ARARY ၏ပထမဆုံး pareter သည်ပုံမှန်အသုံးအနှုန်းများနှင့်သက်ဆိုင်ရာ callback လုပ်ဆောင်ချက်များပါ 0 င်သည့် activity ခင်းကျင်းမှုတစ်ခုဖြစ်သည်။ ပုံမှန်စကားရပ်သည် [custom_tag] သို့မဟုတ် [အခြား twag] tag နှင့်ကိုက်ညီသည့်အခါသက်ဆိုင်ရာ callback function ကိုဟုခေါ်သည်။
Callback function တွင် XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန် tag အကြောင်းအရာများမှလွတ်မြောက်ရန် htmlspecialchars function ကိုအသုံးပြုသည်။
နောက်ဆုံးအနေဖြင့်မူရင်းထုံးစံအတိုင်း tag ကို callback function မှပြန်လာသော HTML element ဖြင့်အစားထိုးသည်။
input ကို string ကိုဖြစ်ပါတယ်ဟုယူဆ:
ဒါကပါ 0 င်သည်[custom_tag]ကပ်တံဆိပ်[/custom_tag]နှင့်[another_tag]ကပ်တံဆိပ်[/another_tag]ရာထူးဥပမာ。
အထက်ပါကုဒ်ကိုကွပ်မျက်ပြီးနောက် output ကိုဖြစ်လိမ့်မည်။
ဒါကပါ 0 င်သည်<div class='custom-tag'>ကပ်တံဆိပ်</div>နှင့်<span class='another-tag'>ကပ်တံဆိပ်</span>ရာထူးဥပမာ。
Preg_replace_callback_array သည်ပုံမှန်အစားထိုးလုပ်ငန်းမျိုးစုံလိုအပ်သောအခြေအနေများလိုအပ်သည့်အခြေအနေများကိုရိုးရှင်းလွယ်ကူစေသောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဤဥပမာတွင် Custom tags [custom_tag] နှင့် [Test_tag ] နှင့် [Test_tag] နှင့် HTML elements < compute tags များကိုအောင်မြင်စွာပြောင်းလဲခဲ့သည်။
ပိုမိုရှုပ်ထွေးသောတံဆိပ်ပြောင်းလဲမှုများကိုကိုင်တွယ်ရန်လိုအပ်ပါကသင်၏လိုအပ်ချက်များနှင့်အညီ callback function ၏ယုတ္တိဗေဒကိုတိုးချဲ့နိုင်သည်။ ဤလုပ်ဆောင်မှုကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းအားဖြင့်သင်သည် string အစားထိုးခြင်းနှင့်လုပ်ငန်းများလုပ်ဆောင်မှုများကိုအလွယ်တကူကိုင်တွယ်နိုင်သည်။