လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> စာရွက်စာတမ်းအတွက်ဤ function ကို၏အရိုးရှင်းဆုံးနှင့်ရှုပ်ထွေးဆုံးစံနမူနာများ၏နှိုင်းယှဉ်

စာရွက်စာတမ်းအတွက်ဤ function ကို၏အရိုးရှင်းဆုံးနှင့်ရှုပ်ထွေးဆုံးစံနမူနာများ၏နှိုင်းယှဉ်

M66 2025-06-02

PHP တွင် string processing သည်နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှု၏အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ Preg_replace_callback_array function သည် string ၏အစိတ်အပိုင်းများကိုပုံမှန်ဖော်ပြရန်ပုံစံများကိုလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်နိုင်သည့်အပိုင်းအစများကိုအစားထိုးရန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်ကိရိယာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်အတိမ်အနက်ကိုနားလည်ရန်အထောက်အကူပြုရန်အထောက်အကူပြုရန်အထောက်အကူပြုသောဥပမာအားဖြင့် preg_replace_callback_array ၏အသုံးပြုမှုကိုနှိုင်းယှဉ်။ ရှင်းပြပါလိမ့်မည်။

1 ။ 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 ကို။

  • $ ကန့်သတ်ချက် - အစားထိုးနံပါတ်များအကန့်အသတ်ရှိသည်။ ပုံမှန်ကန့်သတ်ချက်မရှိပါ။

  • $ ရေတွက် : အစားထိုးအကြိမ်အရေအတွက်။

2 ။ အရိုးရှင်းဆုံးဥပမာ

 <?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 ကိုဘယ်လိုခေါ်သလဲဆိုတာကိုပြတယ်။

3 ။ ရှုပ်ထွေးဆုံးဥပမာ

ကျွန်ုပ်တို့တွင်အောက်ပါအစားထိုးမှုကိုဖြည့်စွက်ရန်လိုအပ်သည့်စာသားအပိုင်းအစရှိသည်ဆိုပါစို့။

  1. M66.net Mailboxes အားလုံးကို encryption format ဖြင့်အစားထိုးပါ (အသုံးပြုသူအမည်အပိုင်းကိုကြယ်ပွင့်ဖြင့်အစားထိုးသည်) ။

  2. ကိုက်ညီသော http သို့မဟုတ် https လင့်များအားလုံးကို target = "_ blank" ဖြင့် hyperlinks သို့ပြောင်းပါ။

  3. နံပါတ်များအားလုံးကိုအင်္ဂလိပ်စကားလုံးများကိုပြောင်းပါ (အချို့သောဘုံနံပါတ်များကိုသာအစားထိုးပါ)

  4. နေ့စွဲ 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。

4 ။ အကျဉ်းချုပ်

ဒီဥပမာနှစ်ခုကတဆင့်ငါတို့မြင်နိုင်တယ် -

  • Preg_replace_callback_array သည် တစ်ပြိုင်နက်တည်းကိုက်ညီရန်ပုံမှန်ပုံစံများကိုထောက်ပံ့ရန်နှင့်ရှုပ်ထွေးသော string အစားထိုးလိုအပ်ချက်များအတွက်အလွန်သင့်လျော်သည်။

  • ပုံစံတစ်ခုစီသည်အစားထိုးယုတ္တိဗေဒကိုရှင်းရှင်းလင်းလင်းကွဲသွားစေရန်လွတ်လပ်သော callback function တစ်ခုသို့ခညျြနှောငျနိုင်သည်။

  • မတူကွဲပြားသောစာသားကိုကိုင်တွယ်သောအခါ၎င်းသည် preg_replace_callback တစ်ခုတည်းထက် ပို. ထိရောက်ပြီးအဆင်ပြေပါသည်။

  • အစားထိုးယုတ္တိဗေဒဆိုင်ရာယုတ္တိဗေဒကိုပြောင်းလွယ်ပြင်လွယ်တိုးချဲ့နိုင်ပြီးပုံစံချခြင်း, HTML tag edpection စသည်ဖြင့်ပြုလုပ်နိုင်သည်။

လေ့လာရန်အကောင်းဆုံးနည်းလမ်း Preg_replace_callback_array သည် callbacks အမျိုးမျိုးကိုရေးရန်, ပုံမှန်အသုံးအနှုန်းများကိုပေါင်းစပ်ခြင်း,