လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Parse_url သည်အစီအစဉ်များမပါဘဲ URLs များကိုမပြည့်စုံသောခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်ထောင်ချောက်တစ်ခုဖြစ်သည်

Parse_url သည်အစီအစဉ်များမပါဘဲ URLs များကိုမပြည့်စုံသောခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်ထောင်ချောက်တစ်ခုဖြစ်သည်

gitbox 2025-06-06

PHP တွင် Parse_URL သည် URLs များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်၎င်းတို့အား pass url ား url ကိုခွဲထုတ်ရန်အသုံးပြုသောအလွန်အသုံးများသော function တစ်ခုဖြစ်ပြီး၎င်းတို့ကိုဖြတ်သန်းသွားသော URL သည် par parl pars_url ( http: // ) တွင်မပြည့်စုံပါ။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏အကြောင်းရင်းများ၏အကြောင်းရင်းများကိုအသေးစိတ်လေ့လာပြီးပိတ်မိနေကြောင်းသင်မည်သို့သင်ပေးမည်ဖြစ်သည်။


Parse_URL ၏အခြေခံအသုံးပြုမှု

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 မရှိပါ။


အစီအစဉ်မပါဘဲ url arsing ကိစ္စရပ်များ

ဥပမာ 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 သည် အစီအစဉ်ကိုအလိုအလျောက်မပြီး မြောက် ပါ။


ဒီပြ problem နာကိုဘယ်လိုဖြေရှင်းရမလဲ။

1 ။ 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));

ဤနည်းအားဖြင့်သင်သည်ခွဲခြမ်းစိတ်ဖြာရလဒ်များကိုရနိုင်သည်။


2 ။ ပုံမှန်သို့မဟုတ်အခြားနည်းလမ်းများကိုကိုယ်တိုင်ကိုယ်ကျ domain name ကိုထုတ်ယူရန်

သင်အစီအစဉ်တစ်ခုကိုမထည့်ချင်ပါက 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";

သို့သော်ဤနည်းလမ်းသည်ရှုပ်ထွေးပြီးအမှားအယွင်းများကိုဖြစ်ပေါ်စေသည်။ ထို့ကြောင့်ပထမဖြေရှင်းချက်ကိုအကြံပြုသည်။


3 ။ အခြားစာကြည့်တိုက်များကိုသုံးပါ

စီမံကိန်းတွင် 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));