Preg_replace_callback_array သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး developer များက developer များကို string တစ်ခုတွင်အမျိုးမျိုးသောပုံမှန်အသုံးအနှုန်းများကို အသုံးပြု. လုပ်ငန်းများကိုရှာဖွေရန်နှင့်အစားထိုးရန်ခွင့်ပြုသည်။ ပုံမှန် preg_replace နှင့်မတူဘဲ Preg_replace_callback_array သည် ပုံမှန်ပုံစံတစ်ခုစီအတွက် callback function ကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။
function ကိုအဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအောက်ပါအတိုင်းဖြစ်သည် -
preg_replace_callback_array(array $patterns, string $subject): string
$ ပုံစံများ - သော့သည်ပုံမှန်စကားရပ်ပုံစံဖြစ်သော array တစ်ခုနှင့်တန်ဖိုးသည် callback function ဖြစ်သည်။
$ အကြောင်းအရာ - အစားထိုးစစ်ဆင်ရေးလုပ်ဆောင်ရန် string ကို။
အခြေခံအကျဆုံးအသုံးပြုမှုမှာပုံမှန်ပုံစံအမျိုးမျိုးနှင့်သက်ဆိုင်သော callback function များပါ 0 င်သည့်ခင်းကျင်းမှုကိုသတ်မှတ်ရန်နှင့် preg_replace_callback_array သို့ဖြတ်သန်းရန်ဖြစ်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်နံပါတ်များနှင့်အက္ခရာများကိုအောက်ပါကုဒ်များမှတစ်ဆင့်တိကျသောပုံစံများသို့ပြောင်းခြင်းဖြင့်ပြောင်းလဲနိုင်သည်။
$patterns = [
'/(\d+)/' => function($matches) {
return '<number>' . $matches[0] . '</number>';
},
'/([a-zA-Z]+)/' => function($matches) {
return '<text>' . strtoupper($matches[0]) . '</text>';
}
];
$subject = "Hello123 World456";
$result = preg_replace_callback_array($patterns, $subject);
echo $result; // ထုတ်လုပ်ခြင်း:<text>HELLO</text><number>123</number> <text>WORLD</text><number>456</number>
ဤဥပမာတွင် strings strings နံပါတ်များ <number> </ nume> tag မှာထုပ်ပိုးပြီးအက္ခရာများကိုအရင်းအနှီးအဖြစ်ပြောင်းလဲပြီး <text> text> tag မှာထုပ်ထားတယ်။
PREG_RESTER_CALLALLBASK_ARRAY သည် ပုံမှန်အသုံးအနှုန်းမျိုးစုံပြုလုပ်ရန်လိုအပ်သည့်အခါကောင်းစွာလုပ်ဆောင်သည်။ ၎င်းသည်သင့်အားခွဲခြမ်းစိတ်ဖြာမှုတစ်ခုတွင်အမျိုးမျိုးသောပုံစံမျိုးစုံကိုကိုင်တွယ်ရန်ခွင့်ပြုသည်, ကုဒ်ကိုအလွန်ရိုးရှင်းစေသည်။
ဥပမာအားဖြင့်, သင်သည်ဖုန်းနံပါတ်များ, အီးမေးလ်လိပ်စာများနှင့် urls များကိုကိုင်တွယ်ရန်လိုအပ်ပါကလိုအပ်သည့်အတိုင်းပုံမှန်ပုံစံများနှင့် callback လုပ်ဆောင်ချက်များကိုသတ်မှတ်နိုင်သည်။
$patterns = [
'/(\d{3}-\d{3}-\d{4})/' => function($matches) {
return '<phone>' . $matches[0] . '</phone>';
},
'/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/' => function($matches) {
return '<email>' . $matches[0] . '</email>';
},
'/https?:\/\/([a-zA-Z0-9.-]+)/' => function($matches) {
return '<url>' . $matches[0] . '</url>';
}
];
$subject = "Contact me at 123-456-7890 or [email protected]. Visit https://gitbox.net for more info.";
$result = preg_replace_callback_array($patterns, $subject);
echo $result;
// ထုတ်လုပ်ခြင်း:Contact me at <phone>123-456-7890</phone> or <email>[email protected]</email>. Visit <url>https://gitbox.net</url> for more info.
ဤဥပမာတွင်ဖုန်း, အီးမေးလ်လိပ်စာနှင့် URL တို့တွင်သီးခြားစီလုပ်ဆောင်ပြီး tags များနှင့်ပတ်ထားသည်။ ဤနည်းအားဖြင့်ပုံမှန်အစားထိုးလုပ်ငန်းများကိုပုံမှန်အစားထိုးအလုပ်များကို function တစ်ခုခေါ်ဆိုမှုတစ်ခုဖြင့်ပြီးစီးနိုင်သည်။
တစ်ခါတစ်ရံအစားထိုးခြင်းလုပ်ငန်းများသည်ရိုးရှင်းသော string အစားထိုးရုံထက်မကပါ။ Callback function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်အစားထိုးသောအခါပိုမိုစိတ်ကြိုက်စစ်ဆင်ရေးများကိုမိတ်ဆက်ပေးနိုင်သည်။ ဥပမာအားဖြင့်, စာသားအတွင်းရှိရက်စွဲပုံစံကိုကျွန်ုပ်တို့အစားထိုးလိုပြီး၎င်းကို "yyy-mm-dd" format နဲ့ပြောင်းလဲချင်တယ်ဆိုပါစို့။
$patterns = [
'/(\d{2})\/(\d{2})\/(\d{4})/' => function($matches) {
return $matches[3] . '-' . $matches[1] . '-' . $matches[2]; // ကူးပြောင်း YYYY-MM-DD ပမာဏ
}
];
$subject = "The event is on 12/07/2023.";
$result = preg_replace_callback_array($patterns, $subject);
echo $result; // ထုတ်လုပ်ခြင်း:The event is on 2023-12-07.
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်ပုံမှန်ကိုက်ညီမည့်နေ့ရက်ပုံစံကို အသုံးပြု. လိုက်လျောညီထွေရှိသောရက်စွဲကို callback function တွင်ပြုပြင်သည်။
အကယ်. သင် URLs များကိုပုံမှန်အစားထိုးခြင်းတွင်ပြုလုပ်ရန်လိုအပ်ပါကသင် ( GitBox.net ကဲ့သို့သော URLs အားလုံး၏ဒိုမိန်းအမည်များကိုအစားထိုးလိုပါကသင်ဤအရာကိုကျင့်သုံးခြင်းဖြင့်ပြုလုပ်နိုင်သည်။
$patterns = [
'/https?:\/\/([a-zA-Z0-9.-]+)/' => function($matches) {
return 'https://gitbox.net'; // ဒိုမိန်းအမည်အားလုံးကိုအစားထိုးပါ gitbox.net
}
];
$subject = "Check out my website at https://www.example.com or visit https://subdomain.example.com.";
$result = preg_replace_callback_array($patterns, $subject);
echo $result;
// ထုတ်လုပ်ခြင်း:Check out my website at https://gitbox.net or visit https://gitbox.net.
ဤဥပမာတွင် URL အားလုံး၏ဒိုမိန်းအပိုင်းတွင် Gitbox.net ဖြင့်အစားထိုးသည်။ လမ်းကြောင်းနှင့်အခြားအစိတ်အပိုင်းများမှာမပြောင်းလဲပါ။
Preg_replace_callback_array သည်အစားထိုးလုပ်ငန်းများကိုကိုင်တွယ်ရာတွင်အလွန်ထိရောက်သော်လည်းအာရုံစိုက်ရန်စွမ်းဆောင်ရည်ပြ issues နာအချို့ရှိနေသေးသည်။
ပုံမှန်အသုံးအနှုန်းများကိုအလွန်အကျွံအသုံးပြုခြင်း - ရိုးရှင်းသောပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုရန်ကြိုးစားပါ, ရှုပ်ထွေးသောပုံစံများသည်စွမ်းဆောင်ရည်ပျက်ပြားစေနိုင်သည်။
callback လုပ်ဆောင်ချက်များ၏ရှုပ်ထွေးမှုကိုအနည်းဆုံးဖြစ်စေပါ ။ callback function တွင်ရှုပ်ထွေးသောယုတ္တိဗေဒသည်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်စေလိမ့်မည်။