PHP တွင် Preg_replace_callback_array သည်အလွန်အစွမ်းထက်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ လိုက်ဖက်တဲ့ရလဒ်တွေကိုလုပ်ငန်းတွေလုပ်ဖို့ callback function တွေကိုသုံးပြီး, ဤဆောင်းပါးသည်ဖုန်းနံပါတ်နှင့်အီးမေးလ်လိပ်စာကိုအလိုအလျောက်ခွဲခြားသတ်မှတ်ရန်နှင့်အစားထိုးရန် Preg_replace_callback_array function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Preg_replace_callback_array function သည်ပုံမှန် preg_replace နှင့်ဆင်တူသည့် PHP တွင်ပုံမှန်စကားရပ်အစားထိုးလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော်၎င်းသည် array ကိုအငြင်းပွားမှုတစ်ခုအဖြစ်လက်ခံသည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် (ထိုကဲ့သို့သောဖုန်းနံပါတ်, အီးမေးလ်, စသည်တို့) နှင့်ကိုက်ညီသောကိုက်ညီမှုအမျိုးအစားများအပေါ် အခြေခံ. ကွဲပြားခြားနားသောအစားထိုးလုပ်ငန်းများကိုလုပ်ဆောင်နိုင်ပါသည်။
function ရှေ့ပြေးပုံစံ:
preg_replace_callback_array(array $patterns_and_callbacks, string $subject);
$ Patternals_and_callbacks : သော့သည်ပုံမှန်စကားရပ်ပုံစံဖြစ်သော array နှင့်တန်ဖိုးသည်သက်ဆိုင်ရာ callback function ဖြစ်သည်။
$ အကြောင်းအရာ - ပုံမှန်အစားထိုးစစ်ဆင်ရေးကိုလုပ်ဆောင်သော string ကိုရိုက်ထည့်ပါ။
ဖုန်းနံပါတ်နှင့်ကိုက်ညီရန်ပုံမှန်စကားရပ်တစ်ခုရေးရန်ကျွန်ုပ်တို့ပထမ ဦး ဆုံးရေးသားရန်လိုအပ်သည်။ ဖုန်းနံပါတ်များစွာရှိသည်, သို့သော်ဘုံပုံစံများတွင်အောက်ပါတို့ပါဝင်သည် -
11 ဂဏန်းမိုဘိုင်းဖုန်းနံပါတ် (ဥပမာ - 13812345678)
အပြည်ပြည်ဆိုင်ရာဖုန်းများဟုခေါ်ဆိုရန်အတွက် format (ဥပမာ - +86 138 128 1234 5678)
ဤတွင်ဘုံဖုန်းနံပါတ်များနှင့်ကိုက်ညီသောပုံမှန်စကားရပ်ဖြစ်သည်။
$phonePattern = '/\+?(\d{1,3}[\s\-])?(\(?\d{3,4}\)?[\s\-]?)?(\d{7,8})([\s\-]?\d{2,4})?/';
ယခုကျွန်ုပ်တို့သည်ကိုက်ညီသောဖုန်းနံပါတ်ကိုကိုင်တွယ်ရန် callback function ကိုရေးပြီး preg_replace_callback_array ဖြင့်အစားထိုးနိုင်သည်။
$patterns_and_callbacks = array(
// ဖုန်းနံပါတ်နှင့်ကိုက်ညီပါ
'/\+?(\d{1,3}[\s\-])?(\(?\d{3,4}\)?[\s\-]?)?(\d{7,8})([\s\-]?\d{2,4})?/' => function ($matches) {
return '[ဖုန်းနံပါတ်ကိုဝှက်ထားတယ်]';
}
);
$text = "ကျွန်တော်တို့ကိုဆက်သွယ်ပါ:+86 138 1234 5678 သို့မဟုတ်ခေါ်ဆိုပါ(010) 1234-5678";
$result = preg_replace_callback_array($patterns_and_callbacks, $text);
echo $result;
အထက်ပါကုဒ်များတွင်ဖုန်းနံပါတ်ကိုပုံမှန်စကားရပ်ဖြင့်လိုက်ဖက်စွာဖြင့်လိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ပါ။ preg_replace_callback_array သည် ကိုက်ညီသောဖုန်းနံပါတ်များကို [ဖုန်းနံပါတ်လျှို့ဝှက်] နှင့်အလိုအလျောက်အစားထိုးမည်။
ထို့နောက်ကျွန်ုပ်တို့သည်စာသားအတွင်းရှိအီးမေးလ်လိပ်စာကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ စာတိုက်ပုံးများအတွက်ဘုံပုံစံများတွင် -
username@explow.com
user.name@subomyain.eExample
ကျွန်ုပ်တို့၏အီးမေးလ်လိပ်စာနှင့်ကိုက်ညီရန်အောက်ပါပုံမှန်ဖော်ပြချက်ကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
$emailPattern = '/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/';
အလားတူပင်ကျွန်ုပ်တို့သည်အီးမေးလ်လိပ်စာအတွက် callback function တစ်ခုကိုဖန်တီးပြီး၎င်းကို preg_replace_callback_array ဖြင့်အစားထိုးပါမည်။
$patterns_and_callbacks = array(
// ဖုန်းနံပါတ်နှင့်ကိုက်ညီပါ
'/\+?(\d{1,3}[\s\-])?(\(?\d{3,4}\)?[\s\-]?)?(\d{7,8})([\s\-]?\d{2,4})?/' => function ($matches) {
return '[ဖုန်းနံပါတ်ကိုဝှက်ထားတယ်]';
},
// အီးမေးလ်လိပ်စာနှင့်ကိုက်ညီပါ
'/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/' => function ($matches) {
return '[အီးမေးလ်ဝှက်ထားသည်]';
}
);
$text = "ကျွန်ုပ်၏အီးမေးလ်လိပ်စာမှာ example123@m66.net,ဆက်သွယ်ရန်အချက်အလက်များ:+86 138 1234 5678";
$result = preg_replace_callback_array($patterns_and_callbacks, $text);
echo $result;
ဒီဥပမာမှာလိုက်ဖက်တဲ့စာတိုက်ပုံးကို callback function ကိုဖြတ်ပြီးအစားထိုးလိုက်တယ်, အဲဒါကို [စာတိုက်ပုံးလျှို့ဝှက်ထား] နဲ့အစားထိုးလိုက်တယ်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ဖုန်းနံပါတ်နှင့်အီးမေးလ်ကိုအောင်မြင်စွာဖော်ထုတ်ပြီးအစားထိုးသည်။
ဖုန်းနံပါတ်များနှင့်အီးမေးလ်များအပြင်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည် URLs များကိုစာသားအတွင်းရှိ URL များကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ စာသားတွင် URL တွင်ပါ 0 င်ပါက Domain Name ကို M66.net ဖြင့်အစားထိုးလိုပါက URL နှင့်ကိုက်ညီရန်နှင့် callback function တွင်အစားထိုးရန်ပုံမှန်စကားရပ်ကိုရေးနိုင်သည်။
ဤတွင် URL နှင့်ကိုက်ညီသောပုံမှန်စကားရပ်ဖြစ်သည်။
$urlPattern = '/https?:\/\/([a-zA-Z0-9.-]+)(\/[a-zA-Z0-9\-._~:\/?#[\]@!$&\'()*+,;%=]*)/';
အောက်ဖော်ပြပါလိပ်စာများတွင် M66.net နှင့်အတူ URL ၏ domain name အပိုင်းကိုအစားထိုးနိုင်သည်။
$patterns_and_callbacks = array(
// ဖုန်းနံပါတ်နှင့်ကိုက်ညီပါ
'/\+?(\d{1,3}[\s\-])?(\(?\d{3,4}\)?[\s\-]?)?(\d{7,8})([\s\-]?\d{2,4})?/' => function ($matches) {
return '[ဖုန်းနံပါတ်ကိုဝှက်ထားတယ်]';
},
// အီးမေးလ်လိပ်စာနှင့်ကိုက်ညီပါ
'/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/' => function ($matches) {
return '[အီးမေးလ်ဝှက်ထားသည်]';
},
// ပွဲစဉ်နှင့်အစားထိုးလိုက်ပါURLဒိုမိန်းအမည်
'/https?:\/\/([a-zA-Z0-9.-]+)(\/[a-zA-Z0-9\-._~:\/?#[\]@!$&\'()*+,;%=]*)/' => function ($matches) {
return 'https://' . 'm66.net' . $matches[2];
}
);
$text = "ကျွန်ုပ်တို့၏တရားဝင်ဝက်ဘ်ဆိုက်သို့သွားပါ:https://www.example.com/contact သို့မဟုတ်အားဖြင့်https://subdomain.example.orgပိုမိုသိရှိလိုပါကရယူပါ";
$result = preg_replace_callback_array($patterns_and_callbacks, $text);
echo $result;
ဤနည်းအားဖြင့်စာသားထဲရှိ URL အားလုံး၏ဒိုမိန်းအမည်များကို M66.net ဖြင့်အစားထိုးလိမ့်မည်။
Preg_replace_callback_array function ကိုအသုံးပြုခြင်းဖြင့် PHP ရှိ URL ရှိ URL ရှိဖုန်းနံပါတ်, အီးမေးလ်လိပ်စာနှင့်ဒိုမိန်းအမည်ကိုကျွန်ုပ်တို့အလွယ်တကူခွဲခြား သတ်မှတ်. အစားထိုးနိုင်သည်။ CallBack function များကိုအသုံးပြုခြင်းသည်အစားထိုးနည်းလမ်းများ၏ထိရောက်မှုနှင့်တိကျမှန်ကန်မှုကိုသေချာစေရန်အတွက်အစားထိုးအမျိုးအစားများကိုအစားထိုးရန်ခွင့်ပြုသည်။