မပြည့်စုံသော URL သည်ပျောက်ဆုံးနေသော protocol headers http: // သို့မဟုတ် https: // သို့မဟုတ် hosts or hostnames များနှင့်အတူပျောက်ဆုံးနေသော hostnames များ, ဥပမာအားဖြင့်:
$url1 = "/path/to/resource?foo=bar";
$url2 = "www.gitbox.net/index.php?x=1";
$url3 = "gitbox.net";
ဤအရာအလုံးစုံသည်အပြည့်အဝ URLs အပြည့်အဝ, သို့သော်အချို့သောအခြေအနေများတွင်၎င်းတို့ကို Parse_Url နှင့်ခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည်။
Parse_URL ၏အဓိပ္ပါယ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
array parse_url(string $url, int $component = -1)
၎င်းသည် url ၏အစိတ်အပိုင်းများပါ 0 င်သည့် actiretive array ကိုပြန်လည်ရောက်ရှိစေသည့်သို့မဟုတ်သတ်မှတ်ထားသောအပိုင်း၏တန်ဖိုးကိုကြိုးဖြင့်ပြန်ပို့သည်။
ဥပမာအားဖြင့်:
$url = "https://gitbox.net/index.php?user=chatgpt&lang=php";
print_r(parse_url($url));
ထုတ်လုပ်မှု -
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /index.php
[query] => user=chatgpt&lang=php
)
ယခုအချိန်တွင် Parse_Url ၏စွမ်းဆောင်ရည်သည်အလွန်ပုံမှန်ဖြစ်သည်။
URL သည် protocol ကိုချန်လှပ်သည်ဟုယူဆပါ။
$url = "gitbox.net/index.php?x=1";
print_r(parse_url($url));
ဝင်သည်:
Array
(
[path] => gitbox.net/index.php
[query] => x=1
)
Gitbox.net ကို hostname ဟုအသိအမှတ်မပြုကြောင်းသင်တွေ့လိမ့်မည်။ သို့သော်လမ်းကြောင်း၏တစ်စိတ်တစ်ပိုင်းအနေဖြင့်ကုသသည်။ Parse_Url သည် string တစ်ခုလုံးသည် hostname ပါ 0 င်သည့် URL ထက်လမ်းကြောင်းတစ်ခုဖြစ်သည်ဟုထင်မြင်သည်။
$url = "/some/path?foo=bar";
print_r(parse_url($url));
ရလဒ် -
Array
(
[path] => /some/path
[query] => foo=bar
)
ဤကိစ္စတွင် Parse_URL သည် ပုံမှန်အားဖြင့် string string thing န်းကျင်ကိုခွဲခြမ်းစိတ်ဖြာနိုင်သော်လည်း protocol နှင့် host လုံးဝမရှိချေ။
$url = "gitbox.net";
print_r(parse_url($url));
ရလဒ် -
Array
(
[path] => gitbox.net
)
အလားတူပင် Parse_Url က ၎င်းကိုအိမ်ရှင်မဟုတ်ဘဲလမ်းကြောင်းတစ်ခုအဖြစ်ဆက်ဆံသည်။
URL သည် http သို့မဟုတ် https ဖြစ်သင့်ကြောင်းသင်သိပါက Parse_Url ကို မခေါ်မီ protocol ကိုဖြည့်စွက်နိုင်သည်။
if (strpos($url, '://') === false) {
$url = 'http://' . $url;
}
print_r(parse_url($url));
ဤနည်းအားဖြင့်မူရင်း URL တွင် protocol တစ်ခုမရှိခြင်းဖြစ်သော်လည်း host name ကို parsing တွင်မှန်ကန်စွာဖော်ထုတ်နိုင်သည်။
အကယ်. input string သည်လမ်းကြောင်းသို့မဟုတ်စုံစမ်းမှု string တစ်ခုဖြစ်ပါက host parse_url ကို ကျော်ပြီး parameters တွေကိုခွဲခြမ်းစိတ်ဖြာရန် string processing function ကိုတိုက်ရိုက်သုံးနိုင်သည်။
URL format ကိုဆုံးဖြတ်ရန်ရိုးရှင်းသောပုံမှန်ကိုသုံးပါ, ပြီးနောက် protocol ကိုဖြည့်စွက်ရန်သို့မဟုတ်အခြားခွဲခြမ်းစိတ်ဖြာနည်းများကိုကျင့်သုံးရန်ဆုံးဖြတ်ပါ။
Parse_url သည်အလွန်အဆင်ပြေသောကိရိယာတစ်ခုဖြစ်သည်။ အကယ်. input url သည်မပြည့်စုံပါကအထူးသဖြင့် protocol မရှိခြင်းသည်အိမ်ရှင်အားလမ်းကြောင်းအဖြစ်မှားယွင်းစွာဆက်ဆံလေ့ရှိသည်။ ဤပြ problem နာကိုဖြေရှင်းရန်သော့ချက်မှာ -
Input URL သည်ပြီးပြည့်စုံစွာပြည့်စုံပြီးအနည်းဆုံး protocol ပါဝင်သည်ကိုသေချာအောင်လုပ်ပါ။
အကယ်. ၎င်းကိုအာမခံချက်မရှိ, Preprocess နှင့် URL ကိုကြိုတင်ဖြည့်စွက်ပါက,
သီးခြားစီလမ်းကြောင်းသို့မဟုတ်စုံစမ်းမှု string ကိုဖြစ်စဉ်ကို။
၎င်းသည်ခွဲခြမ်းစိတ်ဖြာရလဒ်များသည်တိကျမှန်ကန်မှုရှိစေရန်နှင့်နောက်ဆက်တွဲအစီအစဉ်အမှားများကိုရှောင်ရှားရန်သေချာစေလိမ့်မည်။
ဤတွင်မပြည့်စုံသော URLs များကိုမည်သို့ကိုင်တွယ်ရမည်ကိုပြသသောရိုးရှင်းသောဥပမာကုဒ်ဖြစ်သည်။
function safe_parse_url($url) {
if (strpos($url, '://') === false) {
$url = 'http://' . $url;
}
return parse_url($url);
}
$url_examples = [
"/path/to/resource?foo=bar",
"gitbox.net/index.php?x=1",
"https://gitbox.net/api/data?param=value",
"gitbox.net"
];
foreach ($url_examples as $url) {
$result = safe_parse_url($url);
print_r($result);
echo "--------------------\n";
}
အထက်ပါနည်းလမ်းများမှတဆင့်မပြည့်စုံသော URL များကို parse_Url ၏ပြ army နာကိုဖော်ထုတ်နိုင်ပြီးပရိုဂရမ်သည်အားကောင်းနေသည်။