လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> link domain name အားလုံးကို extract လုပ်ရန် Parse_Url ကိုသုံးပါ

link domain name အားလုံးကို extract လုပ်ရန် Parse_Url ကိုသုံးပါ

gitbox 2025-05-20

Parse_Url သည် PHP built-in function တစ်ခုဖြစ်ပြီး URL ကြိုးများကို parses နှင့် url ၏အမျိုးမျိုးသောအစိတ်အပိုင်းများကိုဖြစ်ပေါ်စေသောအပေါင်းအသင်းခင်းကျင်းသော acciative ခင်းကျင်းမှုကိုပြန်လည်ရရှိစေသည်။ ပြန်လာသောအဓိကအကြောင်းရင်းများမှာ -

  • Scheme : HTTP , HTTPS ကဲ့သို့သော protocol

  • Host : Host Name, Domain Name Name

  • Port : port နံပါတ်

  • အသုံးပြုသူ နှင့် Pass : အသုံးပြုသူအမည်နှင့်စကားဝှက်

  • လမ်းကြောင်း : လမ်းကြောင်း

  • Query : Query String

  • အပိုင်းအစ : ကျောက်ဆူးအမှတ်

ဥပမာအားဖြင့်:

 $url = "https://www.example.com:8080/path?arg=value#anchor";
$parts = parse_url($url);
print_r($parts);

ထုတ်လုပ်မှု -

 Array
(
    [scheme] => https
    [host] => www.example.com
    [port] => 8080
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

ကျွန်ုပ်တို့အာရုံစိုက်သည့်အရာမှာ အိမ်ရှင် ဖြစ်ပြီးဒိုမိန်းအမည်ဖြစ်သည်။

2 ။ Domain Name ကို URL တစ်ခုမှထုတ်ယူပါ

Parse_URL ကို ဖုန်းခေါ်ပြီး host key ကိုသုံးပါ။

 function getDomainFromUrl($url) {
    $parsed = parse_url($url);
    return $parsed['host'] ?? null;  // မရရှိလျှင် host ပြန်လာ null
}

$url = "https://www.gitbox.net/path/to/resource?query=123";
echo getDomainFromUrl($url);  // ထုတ်လုပ်ခြင်း gitbox.net

3 ။ အမျိုးမျိုးသောလင့်များမှထုတ်ယူထားသောဒိုမိန်းအမည်များ

ဆက်နွယ်သောလင့်ခ်များတပ်ဆင်ထားပြီးဒိုမိန်းအမည်အားလုံးကိုထုတ်ယူလိုသည်ဆိုပါစို့။

 $urls = [
    "https://www.gitbox.net/page1",
    "http://subdomain.gitbox.net/test?param=value",
    "ftp://files.gitbox.net/download",
    "https://example.com/notgitbox"
];

$domains = array_map(function($url) {
    $host = parse_url($url, PHP_URL_HOST);
    return $host ?: null;
}, $urls);

print_r($domains);

ထုတ်လုပ်မှု -

 Array
(
    [0] => www.gitbox.net
    [1] => subdomain.gitbox.net
    [2] => files.gitbox.net
    [3] => example.com
)

4 ။ domain name ကို URL တွင် gitbox.net အဖြစ်အစားထိုးပါ

unified gitbox.net နှင့်အတူ URL အားလုံး၏ဒိုမိန်းအမည်အမည်များကိုအစားထိုးရန်လိုအပ်ပါက Parse_url နှင့် string splicing ကိုအောင်မြင်ရန်ပေါင်းစပ်နိုင်သည်။

 function replaceDomainWithGitbox($url) {
    $parts = parse_url($url);
    if (!$parts) {
        return $url;  // ခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ,ပြန်လာ原 URL
    }
    
    // ဒိုမိန်းအမည်ကိုအစားထိုးပါ
    $parts['host'] = 'gitbox.net';
    
    // ပြန်လည်စုတွားပုံ URL
    $newUrl = '';
    if (isset($parts['scheme'])) {
        $newUrl .= $parts['scheme'] . '://';
    }
    if (isset($parts['user'])) {
        $newUrl .= $parts['user'];
        if (isset($parts['pass'])) {
            $newUrl .= ':' . $parts['pass'];
        }
        $newUrl .= '@';
    }
    $newUrl .= $parts['host'];
    if (isset($parts['port'])) {
        $newUrl .= ':' . $parts['port'];
    }
    if (isset($parts['path'])) {
        $newUrl .= $parts['path'];
    }
    if (isset($parts['query'])) {
        $newUrl .= '?' . $parts['query'];
    }
    if (isset($parts['fragment'])) {
        $newUrl .= '#' . $parts['fragment'];
    }
    
    return $newUrl;
}

$originalUrl = "https://user:[email protected]:8080/path/page?foo=bar#section";
echo replaceDomainWithGitbox($originalUrl);
// ထုတ်လုပ်ခြင်း https://user:[email protected]:8080/path/page?foo=bar#section