Preg_Match_all : ပုံမှန်အသုံးအနှုန်းတွေနဲ့ကိုက်ညီတဲ့အကြောင်းအရာအားလုံးကိုလိုက်လျောညီထွေဖြစ်အောင်လုပ်ပြီးကိုက်ညီတဲ့ရလဒ်အားလုံးကိုပြန်ပို့ပေးတယ်။ ဖြစ်ရပ်များအတွက်သင့်တော်သည်။
PREG_RESTER : ကိုက်ညီသောအကြောင်းအရာအားလုံးကိုအစားထိုးခြင်းအားဖြင့် string ကိုအစားထိုးစစ်ဆင်ရေးပြုလုပ်ရန်အသုံးပြုသည်။
ရှုပ်ထွေးသောအစားထိုးနည်းလမ်းတွင် Preg_Match_All ကို ပထမဆုံးအကြိမ် အသုံးပြု. ပစ်မှတ်ထားသောအကြောင်းအရာများအားလုံးကိုထုတ်ယူရန် PREG_MATCH_ALALALALL ကို အသုံးပြု. ထုတ်ယူခြင်းရလဒ်များကိုပြုလုပ်ရန် PREG_REATHTATE ကို ပိုမိုပြောင်းလွယ်ပြင်သည်ပြောင်းလွယ်ပြင်လွယ်ကိုသုံးရန်အသုံးပြုသည်။
ကျွန်ုပ်တို့တွင် URL ချိတ်ဆက်မှုများစွာပါ 0 င်သောစာသားအပိုင်းအစတစ်ခုရှိသည်ဆိုပါစို့ ။ အောက်ဖော်ပြပါသည်သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေးကိုသရုပ်ဖော်ရန်ဥပမာတစ်ခုဖြစ်သည်။
<?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;
?>
HTTP: // သို့မဟုတ် https: // ဖြင့်စတင်သော URLs များအားလုံးနှင့်ကိုက်ညီရန် Preg_Match_All ကို အသုံးပြု. Domain Name နှင့်လမ်းကြောင်းကိုအသီးသီးဖမ်းယူပါ။
ဒိုမိန်းအမည်အပိုင်းကိုအစားထိုးရန်အတွက် Parse_Url မှတဆင့် URL ကိုဖြုတ်ချပါ။
Domain Name ကို GitBox.net ဖြင့်အစားထိုး။ လမ်းကြောင်းနှင့် parameters များကိုထိန်းသိမ်းပါ။
စာသားကိုစာသားတစ်ခုတွင် Preg_replace အသစ်ဖြင့် URL အသစ်ဖြင့်အစားထိုးပါ။
Preg_match_all ဖြင့်အစားထိုးရန်လိုအပ်သည့်ပစ်မှတ်ထားသောအကြောင်းအရာအားလုံးကိုဖြည့်ဆည်းပေးရန်, အကြောင်းအရာတစ်ခုစီအတွက်ယုတ္တိနည်းစွာထုတ်ယူခြင်းနှင့် preg_replace ကို အသုံးပြုခြင်းအားဖြင့်သုတ်ခြင်းအစားထိုးခြင်းအတွက်အစားထိုးခြင်းများကိုသေချာစေရန်အတွက်အစားထိုးခြင်း၏တိကျမှန်ကန်မှုကိုသေချာစေသည်။ ဤနည်းလမ်းသည်ရှုပ်ထွေးသောကြိုးများထုတ်လုပ်ခြင်းအတွက်အထူးသဖြင့်အစားထိုးနည်းဥပဒေများသည်ရိုးရှင်းသော string အစားထိုးရုံထက်မကပါက,
ဒီဆောင်းပါးက Preg_Match_all နဲ့ preg_replace ပေါင်းစပ်ခြင်း၏ကျွမ်းကျင်မှုကိုနားလည်ပြီးနားလည်အောင်ကူညီပေးနိုင်မယ်လို့မျှော်လင့်ပါတယ်။