PHP တွင် Parse_url သည် URLs များကိုခွဲခြမ်းစိတ်ဖြာရန်အစွမ်းထက်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည် URL ကိုအပိုင်းအခြားများ (ဥပမာ, အိမ်ရှင်, အိမ်ရှင်, လမ်းကြောင်း, query and etc) သို့အပိုင်းများစွာခွဲနိုင်သည်။ သို့သော် Parse_URL ကိုအသုံးပြုပြီး မှားယွင်းသော အခြေအနေကိုသင်ကြုံတွေ့ရပါကခွဲခြမ်းစိတ်ဖြာမှုမအောင်မြင်ဟုဆိုလိုသည်။ ဤဆောင်းပါးသည် Parse_Url မှ မှားယွင်းသော အဘယ်ကြောင့်အဘယ်ကြောင့်မမှန်မကန်ဖြစ်သည့်ဘုံအကြောင်းပြချက်များကိုဆန်းစစ်ပါလိမ့်မည်။
ပုံမှန်အသုံးပြုမှုဥပမာတစ်ခုကိုကြည့်ကြစို့။
$url = "https://gitbox.net/path/to/resource?query=123";
$parsed = parse_url($url);
print_r($parsed);
output ကိုဖြစ်လိမ့်မည်:
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /path/to/resource
[query] => query=123
)
Parse_url သည် စနစ်တကျဖွဲ့စည်းထားသော URL ကိုကိုင်တွယ်သောအခါ URL ၏အစိတ်အပိုင်းများကိုပါ 0 င်သည့်အပေါင်းအသင်းဆိုင်ရာခင်းကျင်းမှုကိုပြန်လည်ရရှိခဲ့သည်။ သို့သော် အကယ်. input ကိုသတ်မှတ်ချက်နှင့်မကိုက်ညီပါက မှားယွင်းသော ပြန်လာလိမ့်မည်။
Parse_Url "RFC 3986 သတ်မှတ်ချက်အပေါ်မူတည်သည်။ URL တွင်တရားမ 0 င်သောအက္ခရာများပါ 0 င်ပါက url တွင်တရားမ 0 င်အက္ခရာများ,
ဥပမာ -
$url = "http://gitbox.net/ခေြလမ်း/ပစ္စည်းအင်းအား"; // တရုတ်အမျိုးသမီး
$result = parse_url($url); // ပြန်လာ false
ဖြေရှင်းချက် -
အသေးစိတ်ဖော်ပြချက်နှင့်ကိုက်ညီစေရန် urlencode သို့မဟုတ်တစ်စိတ်တစ်ပိုင်း encoding လုပ်ဆောင်ပါ။
$url = "http://gitbox.net/" . urlencode("ခေြလမ်း/ပစ္စည်းအင်းအား");
Parse_Url သည် string တစ်ခုထဲသို့ 0 င်ရန်လိုအပ်သည်။ အကယ်. သင်သည် Array, Order သို့မဟုတ် Null တွင်ဖြတ်သန်းသွားလျှင်၎င်းသည် မှားယွင်းစွာ ပြန်ပို့လိမ့်မည်။
ဥပမာ -
$url = null;
$result = parse_url($url); // ပြန်လာ false
ဖြေရှင်းချက် -
String အမျိုးအစားကိုသေချာအောင်လုပ်ပါ။
$url = (string)$url;
Parse_Url (ဥပမာ /index.php ကဲ့သို့သော) ဆွေမျိုးလမ်းကြောင်းများ (ဥပမာ /index.php ကဲ့သို့) ကိုပံ့ပိုးပေးသော်လည်းအစီအစဉ်မရှိပါက format သည်ရှုပ်ထွေးနေသည် ။
ဥပမာ -
$url = "://gitbox.net"; // မလုံမလောက်မှု scheme ရေှ့ဆက်တဲှ
$result = parse_url($url); // ပြန်လာ false
ဖြေရှင်းချက် -
အပြည့်အဝ URL:
$url = "http://gitbox.net";
အကယ်. URL သည်အလွန်ကြီးမားသော်လည်းအသိုက်ပြထားတဲ့ parameters အမြောက်အများပါ 0 င်ပါက,
ဖြေရှင်းချက် -
URL ကိုရိုးရှင်းအောင်ကြိုးစားပါ,
Parse_url ကို ပျက်ကွက်ခြင်းမှကာကွယ်ရန်အောက်ပါနည်းဗျူဟာများကိုလက်ခံနိုင်သည်။
အသုံးပြုသူ input ကိုတင်းကြပ်စွာစစ်ဆေးခြင်း - ပုံမှန်သို့မဟုတ် filter function function filter_var ($ URL, filter_valka_URL) ကို သုံးပါ။
Preprocess URL - အပိုနေရာများနှင့် urlecode encoding လမ်းကြောင်းများကိုဖယ်ရှားရန်တိကျသော trim အသုံးပြုခြင်းကိုအသုံးပြုသည်။
အမှားကိုင်တွယ်သူယန္တရား : Parse_Url ကို ခေါ်ပြီးနောက်၎င်းသည် မှားယွင်း နေသည်ကို ဦး စွာဆုံးဖြတ်ပြီးနောက်ဆက်တွဲစစ်ဆင်ရေးများကိုလုပ်ဆောင်ပါ။
နမူနာကုဒ်:
$url = "https://gitbox.net/path?query=value";
if (($parsed = parse_url($url)) === false) {
echo "URL အားမရှိသော";
} else {
print_r($parsed);
}
PHP ၏ကွဲပြားခြားနားသောဗားရှင်းများသည် Parse_URL အတွက်ကွဲပြားခြားနားသောပြတ်တောက်မှုဒဏ်ကိုခံနိုင်ရည်ရှိသည်။ ဥပမာအားဖြင့် PHP 5.x နှင့် Php 7SP 7.x အကြားတရားမဝင်ဇာတ်ကောင်များသို့မဟုတ်ပျောက်ဆုံးနေသောအစီအစဉ်များကိုကိုင်တွယ်ရာတွင်ခြားနားချက်ရှိသည်။ ထို့ကြောင့်ဗားရှင်း Cross-version development တွင်တရားဝင်, ပြည့်စုံသော URL များကိုအဝင်နှင့် RFC 3986 နှင့်လိုက်ဖက်သော URL များကိုအမြဲတမ်းသေချာစေရန်အကြံပြုသည်။