PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် string ကိုအစားထိုးခြင်းသည်အလွန်များသောအားဖြင့်ဖြစ်သည်။ ကွဲပြားခြားနားသောအမှတ်အသားများအရစာသားအပိုင်းအစတစ်ခုအရကျွန်ုပ်တို့သည်စာသားအပိုင်းအစများကိုကွဲပြားခြားနားသောနည်းလမ်းများဖြင့်အစားထိုးရန်လိုအပ်သည့်အခါ Preg_reThollite_callback_array သည်အထူးသဖြင့်အဆင်ပြေသည်။
Preg_replace_callback_array ကို အသုံးပြု. "Mark-Rock-Dato Data Intection Injary ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုဤဆောင်းပါးကသင့်အားပြသသည်။
Preg_replace_callback_array သည် PHP 7 တွင်မိတ်ဆက်ပေးသည့်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ကြိုးများကိုပုံမှန်အသုံးအနှုန်းများနှင့်သက်ဆိုင်ရာ callback functration များဖြင့်အစားထိုးရန်ခွင့်ပြုသည်။
၎င်း၏လက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
preg_replace_callback_array(array $patterns_and_callbacks, string $subject, int $limit = -1, int &$count = null): string
ဥပမာ - မတူကွဲပြားသော tags အမျိုးမျိုးပါ 0 င်သည့်စာသား၏စာပိုဒ်တစ်ပိုဒ်ရှိသည့်အခြေအနေကိုမြင်ယောင်ကြည့်ပါ။
အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည်[[url:/welcome]],လက်ရှိအချိန်က{{time}}。
ကျနော်တို့လက်ရှိအချိန်နှင့်အတူ hyperlink နှင့် { {{{{{}}] အစားထိုးချင်တယ်။
ကျွန်ုပ်တို့သည် tags နှင့်ကိုက်ညီရန်ပုံမှန်အသုံးအနှုန်းနှစ်ခုကိုအသုံးပြုသည်။
\ [url: (။ *? *?) \] \] \] \] URL အမျိုးအစား၏ tag ကိုကိုက်ညီရန်အသုံးပြုသည်။
\ {\ အချိန် \} \} အချိန်တံဆိပ်ခေါင်းများနှင့်ကိုက်ညီရန်အသုံးပြုသည်။
$template = 'အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည်[[url:/welcome]],လက်ရှိအချိန်က{{time}}。';
$patterns = [
'/\[\[url:(.*?)\]\]/' => function ($matches) {
$path = $matches[1];
return '<a href="https://m66.net' . htmlspecialchars($path) . '">ဤနေရာကိုကလစ်နှိပ်ပါ</a>';
},
'/\{\{time\}\}/' => function () {
return date('Y-m-d H:i:s');
},
];
$output = preg_replace_callback_array($patterns, $template);
echo $output;
အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည်<a href="https://m66.net/welcome">ဤနေရာကိုကလစ်နှိပ်ပါ</a>,လက်ရှိအချိန်က2025-04-21 14:30:00。
မှတ်ချက်။ ။ အမှန်တကယ်အချိန်ကသင်ပြေးသည့်အချိန်နှင့်အညီကွဲပြားလိမ့်မည်။
ဤချဉ်းကပ်မှုသည်ရိုးရာမျိုးစုံ preg_replace_callback သို့မဟုတ် string ကိုအစားထိုးခြင်းအတွက်အားသာချက်များစွာရှိသည်။
ရှင်းလင်းသောဖွဲ့စည်းပုံ - ပုံစံများနှင့်အစားထိုးသည့်ပုံစံအားလုံးသည်ပြင်ဆင်ရန်လွယ်ကူသည့် array တစ်ခုတွင်အာရုံစိုက်သည်။
ပိုမိုထိရောက်သောကွပ်မျက် : အားလုံး modes အားလုံးစာသားစကင်ဖတ်စစ်ဆေးမှုများမပါဘဲတစ်ပြိုင်တည်းလုပ်ဆောင်နိုင်ပါတယ်။
ခိုင်မာသောအကျယ်ပြactacyacity - tag အသစ်တစ်ခုကိုထည့်သွင်းခြင်းက item တစ်ခုအတွက် item တစ်ခုထည့်သွင်းရန်လိုအပ်သည်။ အခြားကုဒ်ကိုပြုပြင်ရန်မလိုအပ်ပါ။
အသုံးပြုသူအမည်, ကျပန်းနံပါတ်များစသည်တို့ကဲ့သို့သောတက်ကြွသော tags များပိုမိုများပြားလာလိုပါက $ ပုံစံများကို array သို့ဆက်လက်တိုးချဲ့ရန်ဆက်လက်လုပ်ဆောင်နေသည်။
$patterns['/\{\{user\}\}/'] = function () {
return 'Xiao Ming';
};
$patterns['/\{\{rand\}\}/'] = function () {
return rand(1, 100);
};
ထို့နောက်၎င်းကိုဤကဲ့သို့သော template တွင်သုံးပါ။
ဝမ်းသာစွာနှုတ်ဆက်ခြင်း,{{user}}!မင်းရဲ့ကံကောင်းတဲ့နံပါတ်က:{{rand}}。
tag-dative data injection engine ကို preg_replace_callback_array ကို အသုံးပြု. အလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ ၎င်းသည် semantic သာသာမကအလွန်ကျယ်ပြန့်သောကျယ်ပြန့်စွာဖြင့်လည်းကောင်း, အကြောင်းအရာပြုပြင်ခြင်း,
ဒီဆောင်းပါးကိုနားလည်ပြီးသုံးဖို့ဒီဆောင်းပါးကအထောက်အကူဖြစ်လိမ့်မယ်လို့မျှော်လင့်ပါတယ်။ အကယ်. သင်သည်ပေါ့ပါးသော Template အင်ဂျင်သို့မဟုတ်အကြောင်းအရာပြန်ဆိုကိရိယာကိုတီထွင်နေပါကသင်၏ကုဒ်၏အရည်အသွေးနှင့်ပြောင်းလွယ်ပြင်လွယ်တိုးတက်စေရန်ဤချဉ်းကပ်နည်းကိုစဉ်းစားပါ။