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
)
ကျွန်ုပ်တို့အာရုံစိုက်သည့်အရာမှာ အိမ်ရှင် ဖြစ်ပြီးဒိုမိန်းအမည်ဖြစ်သည်။
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
ဆက်နွယ်သောလင့်ခ်များတပ်ဆင်ထားပြီးဒိုမိန်းအမည်အားလုံးကိုထုတ်ယူလိုသည်ဆိုပါစို့။
$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
)
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