လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Parse_URL ၏ပြန်လာတန်ဖိုးသည်အဘယ်ကြောင့်မှားယွင်းနေသနည်း။ ဘုံအကြောင်းပြချက်များ၏အကျဉ်းချုပ်

Parse_URL ၏ပြန်လာတန်ဖိုးသည်အဘယ်ကြောင့်မှားယွင်းနေသနည်း။ ဘုံအကြောင်းပြချက်များ၏အကျဉ်းချုပ်

gitbox 2025-05-18

PHP တွင် Parse_url သည် URLs များကိုခွဲခြမ်းစိတ်ဖြာရန်အစွမ်းထက်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည် URL ကိုအပိုင်းအခြားများ (ဥပမာ, အိမ်ရှင်, အိမ်ရှင်, လမ်းကြောင်း, query and etc) သို့အပိုင်းများစွာခွဲနိုင်သည်။ သို့သော် Parse_URL ကိုအသုံးပြုပြီး မှားယွင်းသော အခြေအနေကိုသင်ကြုံတွေ့ရပါကခွဲခြမ်းစိတ်ဖြာမှုမအောင်မြင်ဟုဆိုလိုသည်။ ဤဆောင်းပါးသည် Parse_Url မှ မှားယွင်းသော အဘယ်ကြောင့်အဘယ်ကြောင့်မမှန်မကန်ဖြစ်သည့်ဘုံအကြောင်းပြချက်များကိုဆန်းစစ်ပါလိမ့်မည်။

1 ။ 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 ကိုသတ်မှတ်ချက်နှင့်မကိုက်ညီပါက မှားယွင်းသော ပြန်လာလိမ့်မည်။

2 ။ Parse_Url မှားယွင်းသောအဘယ်ကြောင့်အဘယ်ကြောင့်သာမန်အကြောင်းပြချက်

1 ။ URL တွင်တရားမ 0 င်စာလုံးများပါရှိသည်

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("ခေြလမ်း/ပစ္စည်းအင်းအား");

2 ။ input ကို string ကိုမဟုတ်ပါဘူး

Parse_Url သည် string တစ်ခုထဲသို့ 0 င်ရန်လိုအပ်သည်။ အကယ်. သင်သည် Array, Order သို့မဟုတ် Null တွင်ဖြတ်သန်းသွားလျှင်၎င်းသည် မှားယွင်းစွာ ပြန်ပို့လိမ့်မည်။

ဥပမာ -

 $url = null;
$result = parse_url($url); // ပြန်လာ false

ဖြေရှင်းချက် -

String အမျိုးအစားကိုသေချာအောင်လုပ်ပါ။

 $url = (string)$url;

3 ။ URL သည်အဓိကအစိတ်အပိုင်း (ဥပမာအိမ်ရှင်)

Parse_Url (ဥပမာ /index.php ကဲ့သို့သော) ဆွေမျိုးလမ်းကြောင်းများ (ဥပမာ /index.php ကဲ့သို့) ကိုပံ့ပိုးပေးသော်လည်းအစီအစဉ်မရှိပါက format သည်ရှုပ်ထွေးနေသည်

ဥပမာ -

 $url = "://gitbox.net"; // မလုံမလောက်မှု scheme ရေှ့ဆက်တဲှ
$result = parse_url($url); // ပြန်လာ false

ဖြေရှင်းချက် -

အပြည့်အဝ URL:

 $url = "http://gitbox.net";

4 ။ URL သည်ရှည်လျားလွန်းပြီးပုံစံသည်အလွန်ရှုပ်ထွေးသည်

အကယ်. URL သည်အလွန်ကြီးမားသော်လည်းအသိုက်ပြထားတဲ့ parameters အမြောက်အများပါ 0 င်ပါက,

ဖြေရှင်းချက် -

URL ကိုရိုးရှင်းအောင်ကြိုးစားပါ,

3 ။ Parse_Url မှမှားယွင်းသောပြန်လာပုံ

Parse_url ကို ပျက်ကွက်ခြင်းမှကာကွယ်ရန်အောက်ပါနည်းဗျူဟာများကိုလက်ခံနိုင်သည်။

  1. အသုံးပြုသူ input ကိုတင်းကြပ်စွာစစ်ဆေးခြင်း - ပုံမှန်သို့မဟုတ် filter function function filter_var ($ URL, filter_valka_URL) ကို သုံးပါ။

  2. Preprocess URL - အပိုနေရာများနှင့် urlecode encoding လမ်းကြောင်းများကိုဖယ်ရှားရန်တိကျသော trim အသုံးပြုခြင်းကိုအသုံးပြုသည်။

  3. အမှားကိုင်တွယ်သူယန္တရား : Parse_Url ကို ခေါ်ပြီးနောက်၎င်းသည် မှားယွင်း နေသည်ကို ဦး စွာဆုံးဖြတ်ပြီးနောက်ဆက်တွဲစစ်ဆင်ရေးများကိုလုပ်ဆောင်ပါ။

နမူနာကုဒ်:

 $url = "https://gitbox.net/path?query=value";

if (($parsed = parse_url($url)) === false) {
    echo "URL အားမရှိသော";
} else {
    print_r($parsed);
}

4 ။ လိုက်ဖက်တဲ့သိကောင်းစရာများ

PHP ၏ကွဲပြားခြားနားသောဗားရှင်းများသည် Parse_URL အတွက်ကွဲပြားခြားနားသောပြတ်တောက်မှုဒဏ်ကိုခံနိုင်ရည်ရှိသည်။ ဥပမာအားဖြင့် PHP 5.x နှင့် Php 7SP 7.x အကြားတရားမဝင်ဇာတ်ကောင်များသို့မဟုတ်ပျောက်ဆုံးနေသောအစီအစဉ်များကိုကိုင်တွယ်ရာတွင်ခြားနားချက်ရှိသည်။ ထို့ကြောင့်ဗားရှင်း Cross-version development တွင်တရားဝင်, ပြည့်စုံသော URL များကိုအဝင်နှင့် RFC 3986 နှင့်လိုက်ဖက်သော URL များကိုအမြဲတမ်းသေချာစေရန်အကြံပြုသည်။