String Replacement ကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ PHP သည်အစွမ်းထက်သောကိရိယာများကိုထောက်ပံ့ပေးသည် ။ သို့သော် PHP 7 မှစ. ပိုမိုအားကောင်းသော function ကိုစတင်မိတ်ဆက်ခဲ့ပြီး Preg_replace_callback_array သည်အလားတူအလုပ်များကိုလုပ်ဆောင်ခြင်းသာမက,
ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသုံးပြုသည်ကိုနက်ရှိုင်းစွာရှင်းပြပါမည် ။
Preg_replace_callback သည် ပုံမှန်ပုံစံနှင့် callback function ကိုရရှိပြီး,
ဥပမာ -
$pattern = ['/foo/', '/bar/'];
$callback = function ($matches) {
return strtoupper($matches[0]);
};
$text = "foo and bar";
$result = preg_replace_callback($pattern, $callback, $text);
// ရလဒ်: "FOO and BAR"
ပြ problem နာကမူ ကွဲပြားခြားနားသော mode များသည်ယုတ္တိဗေဒလုပ်ငန်းစဉ်အတွက်တူညီသော callback function ကိုသုံးသောကြောင့်ဖြစ်သည်။
Preg_replace_callback_array သည် မတူကွဲပြားသောပုံမှန်နည်းလမ်းများ အတွက် မတူညီသော callback function များကို သတ်မှတ်ရန်ခွင့်ပြုသည်။
preg_replace_callback_array(array $patterns_and_callbacks, string $subject)
ဥပမာ -
$text = "Visit http://m66.net or send mail to info@m66.net";
$result = preg_replace_callback_array([
// ပြန်လည်နေရာချURL
'~https?://[^\s]+~' => function ($matches) {
return '<a href="' . $matches[0] . '">' . $matches[0] . '</a>';
},
// ပြန်လည်နေရာချEmail
'/[\w\.-]+@[\w\.-]+\.\w+/' => function ($matches) {
return '<a href="mailto:' . $matches[0] . '">' . $matches[0] . '</a>';
},
], $text);
// ရလဒ်: 'Visit <a href="http://m66.net">http://m66.net</a> or send mail to <a href="mailto:info@m66.net">info@m66.net</a>'
ပုံစံတစ်ခုစီအတွက်ရှင်းလင်းသော callback function ကိုသတ်မှတ်ခြင်းအားဖြင့် code ယုတ္တိဗေဒသည်ပိုမိုရှင်းလင်းနိုင်ပြီး မည် သည့်ကိုက်ညီမှုပုံစံဖြစ်သည်ကိုဆုံးဖြတ်ရန်အတွက်တူညီသောလုပ်ဆောင်မှုတွင်အသုံးပြုရန်မလိုအပ်တော့ပါ။
သင် HTML နှင့်ချိတ်ဆက်ရန်နှင့်အထိခိုက်မခံသောစကားလုံးဖြင့်အခြားအထိခိုက်မခံသောစကားလုံးအစားထိုးခြင်းအတွက်အခြားကွဲပြားခြားနားသောပြုပြင်ခြင်းယုတ္တိဗေဒကိုဖြည့်ဆည်းပေးနိုင်သည်။
ပုံစံတစ်ခုစီသည်သက်ဆိုင်ရာ callback သို့ချည်နှောင်ထားခြင်းကြောင့်ပုံစံမျိုးစုံလုပ်ဆောင်မှုတစ်ခုမျှဝေသောအခါဖြစ်နိုင်သောယုတ္တိရှိသောရှုပ်ထွေးမှုများသို့မဟုတ် mishandling ကိုရှောင်ရှားသည်။
Preg_replace_callback_array သည် intray အမိန့်ဖြင့်အစားထိုးစစ်ဆင်ရေးလုပ်ဆောင်သည်။ ဆိုလိုသည်မှာသင်သည် ဦး စားပေးကိုထိန်းချုပ်နိုင်သည်။
$text = "ကျေးဇူးပြုပြီးလည်ပတ်ပါ http://m66.net,သို့မဟုတ်ဆက်သွယ်ရန် admin@m66.net,သို့မဟုတ် @john ပိုမိုသိရှိရန်。";
$result = preg_replace_callback_array([
// URL
'~https?://[^\s]+~' => function ($matches) {
return '<a href="' . $matches[0] . '">' . $matches[0] . '</a>';
},
// Email
'/[\w\.-]+@[\w\.-]+\.\w+/' => function ($matches) {
return '<a href="mailto:' . $matches[0] . '">' . $matches[0] . '</a>';
},
// @အသုံးပြုသူ
'/@(\w+)/' => function ($matches) {
return '<a href="http://m66.net/user/' . $matches[1] . '">@' . $matches[1] . '</a>';
},
], $text);
ရလဒ်သည်ဖိုရမ်များ, မှတ်ချက်ပေး areas ရိယာများ, chat systems စသည်ဖြင့်သင့်တော်သောစာသားထုတ်လုပ်မှုဖြစ်လာလိမ့်မည်။
Preg_replace_callback_array ကို PHP 7.0 တွင်မိတ်ဆက်ခဲ့ပြီး , PHP 5.6 ကဲ့သို့သောဗားရှင်းအဟောင်းများတွင်အသုံးပြုပါက အသုံးပြု. မရပါ။
PHP ၏အဟောင်းများဗားရှင်းများကိုထောက်ခံအားပေးလိုပါကရိုးရာ preg_replace_callback ကို သာသုံးနိုင်သည်။
PREG_RESTER_CALLASTBAK_ARRAY သည် အထူးသဖြင့် Modes မျိုးစုံကွဲပြားခြားနားသောအပြောင်းအလဲများကိုလိုအပ်သည့်အခါကျွန်ုပ်တို့အား ပို. ကြော့ရှင်းသောပုံမှန်အစားထိုးဖြေရှင်းချက်ကိုပေးသည်။ အကယ်. သင်၏စီမံကိန်းသည် PHP 70 သို့မဟုတ်နောက်ပိုင်းတွင်အလုပ်လုပ်နေပါက PREG_replace_callback အပေါ် အခြေခံ. မူရင်း multi-mode processing logic ကိုရွှေ့ပြောင်းရန်အထူးအကြံပြုလိုသည်။
PHP ဖွံ့ဖြိုးတိုးတက်မှုသည် "သာအသုံးပြု" ရုံမက "၎င်းကိုသာအသုံးပြု" ရုံမက "သာအသုံးပြု" ရုံသာမကဘဲထိန်းသိမ်းရန်လွယ်ကူသင့်သည်။