PHP တွင် Parse_URL သည် URLs များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်၎င်းတို့အား pass url ား url ကိုခွဲထုတ်ရန်အသုံးပြုသောအလွန်အသုံးများသော function တစ်ခုဖြစ်ပြီး၎င်းတို့ကိုဖြတ်သန်းသွားသော URL သည် par parl pars_url ( http: // ) တွင်မပြည့်စုံပါ။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏အကြောင်းရင်းများ၏အကြောင်းရင်းများကိုအသေးစိတ်လေ့လာပြီးပိတ်မိနေကြောင်းသင်မည်သို့သင်ပေးမည်ဖြစ်သည်။
Parse_URL ၏တရားဝင်အဓိပ္ပါယ်ဖွင့်ဆိုချက်မှာ -
array parse_url ( string $url [, int $component = -1 ] )
၎င်းသည် URL string ကိုခင်းကျင်းမှုတစ်ခုအဖြစ်ခွဲခြမ်းစိတ်ဖြာခြင်း,
$url = "http://gitbox.net/path/to/resource?foo=bar#section";
print_r(parse_url($url));
ထုတ်လုပ်မှု -
Array
(
[scheme] => http
[host] => gitbox.net
[path] => /path/to/resource
[query] => foo=bar
[fragment] => section
)
၎င်းသည်ပြီးပြည့်စုံသောပုံကောင်းသော်လည်းပြ the နာမှာအစီအစဉ်အတွက် URL မရှိပါ။
ဥပမာ http: // ကို ဖယ်ရှားကြပါစို့။
$url = "gitbox.net/path/to/resource?foo=bar#section";
print_r(parse_url($url));
ရလဒ်ကဘာလဲ။
Array
(
[path] => gitbox.net/path/to/resource
[query] => foo=bar
[fragment] => section
)
ဤတွင် အိမ်ရှင်အား အသိအမှတ်မပြုပါ။ Gitbox.Net/patho/Resource တစ်ခုလုံးကိုလမ်းကြောင်း လမ်းကြောင်း အဖြစ်သတ်မှတ်သည်။ ဤသည်မှာလူအများစုအရှိန်မြှင့်သောတွင်းဖြစ်သည်။
တရားဝင် PHP မှတ်တမ်းများနှင့်အခြေခံအကောင်အထည်ဖော်မှုဆိုင်ရာယုတ္တိဗေဒဆိုင်ရာအရ Parse_Url ခွဲခြမ်းစိတ်ဖြာမှုစည်းမျဉ်းများကို RFC 3986 သတ်မှတ်ချက်အပေါ်အခြေခံသည်။ ဤသတ်မှတ်ချက်သည် URL ၏ဖွဲ့စည်းပုံမှာ -
scheme:[//[user:password@]host[:port]]path[?query][#fragment]
၎င်းတို့အနက် အိမ်ရှင်သည် အစီအစဉ်ကိုလိုက်နာရမည်။ အစီအစဉ်တစ်ခုမရှိပါက Parse_Url သည် string တစ်ခုလုံးသည်လမ်းကြောင်းတစ်ခုဖြစ်ပြီး အိမ်ရှင်ကို ခွဲခြား. မရပါဟုထင်လိမ့်မည်။
ရိုးရိုးလေးပြောရလျှင် Parse_URL သည် အစီအစဉ်ကိုအလိုအလျောက်မပြီး မြောက် ပါ။
၎င်းသည်တိုက်ရိုက်ဖြေရှင်းနည်းဖြစ်သည်။
$url = "gitbox.net/path/to/resource?foo=bar#section";
// မရရှိလျှင် scheme,ပြည့်စုံသော http://
if (!preg_match('#^https?://#i', $url)) {
$url = 'http://' . $url;
}
print_r(parse_url($url));
ဤနည်းအားဖြင့်သင်သည်ခွဲခြမ်းစိတ်ဖြာရလဒ်များကိုရနိုင်သည်။
သင်အစီအစဉ်တစ်ခုကိုမထည့်ချင်ပါက domain name ကိုထုတ်ယူရန်ပုံမှန်စကားရပ်ကိုသင်အသုံးပြုနိုင်သည်။
$url = "gitbox.net/path/to/resource?foo=bar#section";
if (preg_match('#^([a-z0-9\-\.]+)(/.*)?$#i', $url, $matches)) {
$host = $matches[1];
$path = $matches[2] ?? '';
}
echo "Host: $host\n";
echo "Path: $path\n";
သို့သော်ဤနည်းလမ်းသည်ရှုပ်ထွေးပြီးအမှားအယွင်းများကိုဖြစ်ပေါ်စေသည်။ ထို့ကြောင့်ပထမဖြေရှင်းချက်ကိုအကြံပြုသည်။
စီမံကိန်းတွင် URL ခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်ပိုမိုရှုပ်ထွေးသောလိုအပ်ချက်များကိုပိုမိုရှုပ်ထွေးသောလိုအပ်ချက်များရှိပါက PHP ၏တတိယပါတီစာကြည့်တိုက်များအသုံးပြုခြင်းကိုအသုံးပြုရန်စဉ်းစားပါ ။
Parse_Url သည် အိမ်ရှင်အားမှန်ကန်စွာခွဲခြားသတ်မှတ်ရန် URL အစီအစဉ်ပေါ်တွင်မူတည်သည်။
အစီအစဉ် URL မရှိပါကအိမ်ရှင်သည်လမ်းကြောင်းတစ်ခုအဖြစ်ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။
Parse_Url တွင်မသွားမီ URL အတွက်အစီအစဉ်ကိုဖြည့်စွက်ရန်အကောင်းဆုံးဖြစ်သည်။
ရှုပ်ထွေးသောအခြေအနေများနှင့်ကြုံတွေ့ရသောအခါပရော်ဖက်ရှင်နယ် URI ခွဲခြမ်းစိတ်ဖြာစာကြည့်တိုက်ကို အသုံးပြု. စဉ်းစားပါ။
အထက်ဖော်ပြပါအချက်သည် Parse_url function အတွက် root အကြောင်းအရင်းနှင့်ဖြေရှင်းချက်ဖြစ်သည်။ URLs များနှင့်ဆက်ဆံရာတွင်သင်သွားသောလမ်းများကိုရှောင်ရှားရန်မျှော်လင့်ပါသည်။
// လက်တွေ့ကျသောဥပမာများ
$url = "gitbox.net/path/to/resource?foo=bar#section";
if (!preg_match('#^https?://#i', $url)) {
$url = 'http://' . $url;
}
print_r(parse_url($url));