လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Preg_match_all နှင့် Preg_replace အကြောင်းအရာအစားထိုးအကောင်အထည်ဖော်

Preg_match_all နှင့် Preg_replace အကြောင်းအရာအစားထိုးအကောင်အထည်ဖော်

gitbox 2025-06-03

1 ။ နိဒါန်း Preg_match_all နှင့် Preg_replace သို့မိတ်ဆက်ပါ

  • Preg_Match_all : ပုံမှန်အသုံးအနှုန်းတွေနဲ့ကိုက်ညီတဲ့အကြောင်းအရာအားလုံးကိုလိုက်လျောညီထွေဖြစ်အောင်လုပ်ပြီးကိုက်ညီတဲ့ရလဒ်အားလုံးကိုပြန်ပို့ပေးတယ်။ ဖြစ်ရပ်များအတွက်သင့်တော်သည်။

  • PREG_RESTER : ကိုက်ညီသောအကြောင်းအရာအားလုံးကိုအစားထိုးခြင်းအားဖြင့် string ကိုအစားထိုးစစ်ဆင်ရေးပြုလုပ်ရန်အသုံးပြုသည်။

ရှုပ်ထွေးသောအစားထိုးနည်းလမ်းတွင် Preg_Match_All ကို ပထမဆုံးအကြိမ် အသုံးပြု. ပစ်မှတ်ထားသောအကြောင်းအရာများအားလုံးကိုထုတ်ယူရန် PREG_MATCH_ALALALALL ကို အသုံးပြု. ထုတ်ယူခြင်းရလဒ်များကိုပြုလုပ်ရန် PREG_REATHTATE ကို ပိုမိုပြောင်းလွယ်ပြင်သည်ပြောင်းလွယ်ပြင်လွယ်ကိုသုံးရန်အသုံးပြုသည်။


2 ။ အမှန်တကယ်ကိစ္စတွင်ခွဲခြမ်းစိတ်ဖြာခြင်း

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


3 ။ နမူနာကုဒ်

 <?php
// မူရင်းစာသား,မျိုးစုံပါရှိသည်URL
$text = "Baidu ကိုလည်ပတ်ပါ:http://www.baidu.com/s?wd=php
Google သို့သွားပါ:https://www.google.com/search?q=php
ဒီ site ကိုသွားပါ:http://example.com/page?id=123";

// အားလုံးနှင့်ကိုက်ညီပါURLပုံမှန်,ရိုးရှင်းသောပွဲစဉ်http(s)အစURL
$pattern = '/https?:\/\/([a-zA-Z0-9\.-]+)(\/[^\s]*)?/';

// အသုံးပြုpreg_match_allအားလုံးကိုက်ညီမှုထုတ်ယူURL
preg_match_all($pattern, $text, $matches);

// $matches[0]ဒါဟာပြီးပြည့်စုံတဲ့ပွဲစဉ်ပါပဲURL,$matches[1]ဒိုမိန်းအမည်,$matches[2]ဒါဟာလမ်းကြောင်းနှင့် parameters တွေကိုဖြစ်ပါတယ်(မလုပ်မနေရမဟုတ်သော)
$urls = $matches[0];

foreach ($urls as $url) {
    // သုံးသပ်ကြည့်ရှုခြင်းURL,Split သဘောတူညီချက်、ဒိုမိန်းအမည်、ခေြလမ်း
    $parsed = parse_url($url);
    
    // အသစ်တစ်ခုတည်ဆောက်ပါURL,替换ဒိုမိန်းအမည်为gitbox.net
    $new_url = $parsed['scheme'] . '://' . 'gitbox.net';
    if (isset($parsed['path'])) {
        $new_url .= $parsed['path'];
    }
    if (isset($parsed['query'])) {
        $new_url .= '?' . $parsed['query'];
    }
    
    // အသုံးပြုpreg_replaceမူရင်းကိုအစားထိုးပါURLအသစ်သည်URL,ထွက်ပြေးလွတ်မြောက်သော slashes ဤနေရာတွင်ရှိကြောင်းသတိပြုပါ
    $escaped_url = preg_quote($url, '/');
    $text = preg_replace('/' . $escaped_url . '/', $new_url, $text);
}

echo $text;
?>

4 ။ ကုဒ်ဖော်ပြချက်

  1. HTTP: // သို့မဟုတ် https: // ဖြင့်စတင်သော URLs များအားလုံးနှင့်ကိုက်ညီရန် Preg_Match_All ကို အသုံးပြု. Domain Name နှင့်လမ်းကြောင်းကိုအသီးသီးဖမ်းယူပါ။

  2. ဒိုမိန်းအမည်အပိုင်းကိုအစားထိုးရန်အတွက် Parse_Url မှတဆင့် URL ကိုဖြုတ်ချပါ။

  3. Domain Name ကို GitBox.net ဖြင့်အစားထိုး။ လမ်းကြောင်းနှင့် parameters များကိုထိန်းသိမ်းပါ။

  4. စာသားကိုစာသားတစ်ခုတွင် Preg_replace အသစ်ဖြင့် URL အသစ်ဖြင့်အစားထိုးပါ။


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

Preg_match_all ဖြင့်အစားထိုးရန်လိုအပ်သည့်ပစ်မှတ်ထားသောအကြောင်းအရာအားလုံးကိုဖြည့်ဆည်းပေးရန်, အကြောင်းအရာတစ်ခုစီအတွက်ယုတ္တိနည်းစွာထုတ်ယူခြင်းနှင့် preg_replace ကို အသုံးပြုခြင်းအားဖြင့်သုတ်ခြင်းအစားထိုးခြင်းအတွက်အစားထိုးခြင်းများကိုသေချာစေရန်အတွက်အစားထိုးခြင်း၏တိကျမှန်ကန်မှုကိုသေချာစေသည်။ ဤနည်းလမ်းသည်ရှုပ်ထွေးသောကြိုးများထုတ်လုပ်ခြင်းအတွက်အထူးသဖြင့်အစားထိုးနည်းဥပဒေများသည်ရိုးရှင်းသော string အစားထိုးရုံထက်မကပါက,

ဒီဆောင်းပါးက Preg_Match_all နဲ့ preg_replace ပေါင်းစပ်ခြင်း၏ကျွမ်းကျင်မှုကိုနားလည်ပြီးနားလည်အောင်ကူညီပေးနိုင်မယ်လို့မျှော်လင့်ပါတယ်။