PHP တွင် string processing သည်နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှု၏အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ Preg_replace_callback_array function သည် string ၏အစိတ်အပိုင်းများကိုပုံမှန်ဖော်ပြရန်ပုံစံများကိုလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်နိုင်သည့်အပိုင်းအစများကိုအစားထိုးရန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်ကိရိယာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်အတိမ်အနက်ကိုနားလည်ရန်အထောက်အကူပြုရန်အထောက်အကူပြုရန်အထောက်အကူပြုသောဥပမာအားဖြင့် preg_replace_callback_array ၏အသုံးပြုမှုကိုနှိုင်းယှဉ်။ ရှင်းပြပါလိမ့်မည်။
PHPPP 7.0 ပြီးနောက် PREG_RESTER_CALLBAKE_ARRAY function ကိုထည့်သွင်းခဲ့သည်။ ၎င်း၏ function သည်သက်ဆိုင်ရာ callback လုပ်ဆောင်ချက်များကိုပုံမှန်ဖော်ပြရန်နှင့်အစားထိုးရန်နှင့်အစားထိုးရန်ပုံစံအမျိုးမျိုးဖြင့်ဖော်ပြထားသောပုံစံအမျိုးမျိုးအရသိရသည်။
function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
string preg_replace_callback_array(array $patterns_and_callbacks, string $subject [, int $limit = -1 [, int &$count ]])
$ Patternals_and_callbacks : ခင်းကျင်းခြင်း, သော့ချက်သည်ပုံမှန်အသုံးအနှုန်းပုံစံဖြစ်သည်။ ၎င်းသည်သက်ဆိုင်ရာ callback function ဖြစ်သည်။
$ အကြောင်းအရာ - အစားထိုးခံရဖို့ string ကို။
$ ကန့်သတ်ချက် - အစားထိုးနံပါတ်များအကန့်အသတ်ရှိသည်။ ပုံမှန်ကန့်သတ်ချက်မရှိပါ။
$ ရေတွက် : အစားထိုးအကြိမ်အရေအတွက်။
<?php
$text = "ဆက်သွယ်ရန်အီးမေးလ်:info@m66.net,တရားဝင်ဝက်ဘ်ဆိုက်သို့သွားပါ:http://m66.net";
// Callback function ကိုသတ်မှတ်ပါ
$callbacks = [
'/\b[\w.-]+@m66\.net\b/' => function($matches) {
return strtoupper($matches[0]); // စာလုံးအကြီးသို့အီးမေးလ်
},
'/http:\/\/m66\.net/' => function($matches) {
return '<a href="' . $matches[0] . '">' . $matches[0] . '</a>'; // URLချိတ်ဆက်ရန်ပြောင်းပါ
}
];
$result = preg_replace_callback_array($callbacks, $text);
echo $result;
?>
အီးမေးလ်လိပ်စာ info@m66.net နှင့်ကိုက်ညီပြီး၎င်းကိုအရင်းအနှီး info@m666.net ဖြင့်အစားထိုးပါ။
url http://m66.net နှင့်ကိုက်ညီပြီး၎င်းကို hyperlink နှင့် HTML tag ဖြင့်အစားထိုးပါ။
ပြေးပြီးနောက် output သည်:
ဆက်သွယ်ရန်အီးမေးလ်:INFO@M66.NET,တရားဝင်ဝက်ဘ်ဆိုက်သို့သွားပါ:<a href="http://m66.net">http://m66.net</a>
ဒီအရိုးရှင်းဆုံးဥပမာက Preg_replace_callback_array က မတူကွဲပြားတဲ့ပုံစံတွေအရအစားထိုးရန်မတူညီတဲ့ callbacks ကိုဘယ်လိုခေါ်သလဲဆိုတာကိုပြတယ်။
ကျွန်ုပ်တို့တွင်အောက်ပါအစားထိုးမှုကိုဖြည့်စွက်ရန်လိုအပ်သည့်စာသားအပိုင်းအစရှိသည်ဆိုပါစို့။
M66.net Mailboxes အားလုံးကို encryption format ဖြင့်အစားထိုးပါ (အသုံးပြုသူအမည်အပိုင်းကိုကြယ်ပွင့်ဖြင့်အစားထိုးသည်) ။
ကိုက်ညီသော http သို့မဟုတ် https လင့်များအားလုံးကို target = "_ blank" ဖြင့် hyperlinks သို့ပြောင်းပါ။
နံပါတ်များအားလုံးကိုအင်္ဂလိပ်စကားလုံးများကိုပြောင်းပါ (အချို့သောဘုံနံပါတ်များကိုသာအစားထိုးပါ)
နေ့စွဲ 2025 ခုနှစ်မေလ 2025 ရက် ( 2025-05-17 ) ကို (2025-05-17) ကို (2025-05-17) ဖြင့်အစားထိုးပါ။
<?php
$text = "စာပို့:user123@m66.net,ဝဘ်0င်းက္ပုဒ်စာတမ်း:https://m66.net,ဆက်သွယ်ရန်နံပါတ်:400,ဖြန့်ချိသည့်ရက်:2025-05-17。";
// ကိရိယာကိရိယာများ:အင်္ဂလိပ်စကားလုံးများကိုနံပါတ်များ
function numberToWords($num) {
$map = [
'0' => 'zero', '1' => 'one', '2' => 'two', '3' => 'three', '4' => 'four',
'5' => 'five', '6' => 'six', '7' => 'seven', '8' => 'eight', '9' => 'nine',
'400' => 'four hundred' // ဥပမာတစ်ခုအနေဖြင့်
];
return $map[$num] ?? $num;
}
// ကိရိယာကိရိယာများ:ရက်စွဲပုံစံပြောင်းလဲခြင်း
function formatDate($date) {
$time = strtotime($date);
return date('d M Y', $time);
}
$callbacks = [
// စာပို့加密,သုံးစွဲသူအမည်များကိုကြယ်ပွင့်များဖြင့်အစားထိုးသည်
'/\b([\w.-]+)@m66\.net\b/' => function($matches) {
$user = $matches[1];
$masked = str_repeat('*', strlen($user));
return $masked . '@m66.net';
},
// ပေြာင်း http နှင့် https သံကွင်းဆက်
'/https?:\/\/m66\.net/' => function($matches) {
return '<a href="' . $matches[0] . '" target="_blank">' . $matches[0] . '</a>';
},
// အင်္ဂလိပ်စာနံပါတ်(သာဤနေရာတွင် processed400)
'/\b400\b/' => function($matches) {
return numberToWords($matches[0]);
},
// ရက်စွဲပုံစံပြောင်းလဲခြင်း YYYY-MM-DD => DD Mon YYYY
'/\b(\d{4}-\d{2}-\d{2})\b/' => function($matches) {
return formatDate($matches[1]);
}
];
$result = preg_replace_callback_array($callbacks, $text);
echo $result;
?>
အီးမေးလ်လိပ်စာနှင့်ကိုက်ညီရန် user123@m6666.net ကဲ့သို့သောအသုံးပြုသူအမည်အစိတ်အပိုင်းများကို user123@m66.net ကဲ့သို့သော ******* @ m666
အသုံးပြုသူအတွေ့အကြုံကိုတိုးမြှင့်ဖို့ https://m66.net ကို hyperlink ဖြင့်အစားထိုးပါ ။
နံပါတ် 400 ကို အင်္ဂလိပ်စကားလုံး လေးရာ ဖြင့်အစားထိုးပါ။
2025-05-17 မှ 17 အထိမေလ 2025 သို့ပြောင်းပါ။
ရလဒ်များအစက်အပြောက်:
စာပို့:*******@m66.net,ဝဘ်0င်းက္ပုဒ်စာတမ်း:<a href="https://m66.net" target="_blank">https://m66.net</a>,ဆက်သွယ်ရန်နံပါတ်:four hundred,ဖြန့်ချိသည့်ရက်:17 May 2025。
ဒီဥပမာနှစ်ခုကတဆင့်ငါတို့မြင်နိုင်တယ် -
Preg_replace_callback_array သည် တစ်ပြိုင်နက်တည်းကိုက်ညီရန်ပုံမှန်ပုံစံများကိုထောက်ပံ့ရန်နှင့်ရှုပ်ထွေးသော string အစားထိုးလိုအပ်ချက်များအတွက်အလွန်သင့်လျော်သည်။
ပုံစံတစ်ခုစီသည်အစားထိုးယုတ္တိဗေဒကိုရှင်းရှင်းလင်းလင်းကွဲသွားစေရန်လွတ်လပ်သော callback function တစ်ခုသို့ခညျြနှောငျနိုင်သည်။
မတူကွဲပြားသောစာသားကိုကိုင်တွယ်သောအခါ၎င်းသည် preg_replace_callback တစ်ခုတည်းထက် ပို. ထိရောက်ပြီးအဆင်ပြေပါသည်။
အစားထိုးယုတ္တိဗေဒဆိုင်ရာယုတ္တိဗေဒကိုပြောင်းလွယ်ပြင်လွယ်တိုးချဲ့နိုင်ပြီးပုံစံချခြင်း, HTML tag edpection စသည်ဖြင့်ပြုလုပ်နိုင်သည်။
လေ့လာရန်အကောင်းဆုံးနည်းလမ်း Preg_replace_callback_array သည် callbacks အမျိုးမျိုးကိုရေးရန်, ပုံမှန်အသုံးအနှုန်းများကိုပေါင်းစပ်ခြင်း,