PHP တွင် Parse_Url function ကို URL string ကိုခွဲခြမ်းစိတ်ဖြာရန်နှင့် protocol, host, par, par query query parametersters စသည့်အစိတ်အပိုင်းများကိုပြန်လည်ပေးပို့ရန်အသုံးပြုသည်။
Parse_Url ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
$url = "https://gitbox.net/path/to/page?query=123#fragment";
$parts = parse_url($url);
print_r($parts);
?>
အပြေးပြီးနောက်၎င်းသည် output ကိုဖြစ်လိမ့်မည်။
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /path/to/page
[query] => query=123
[fragment] => fragment
)
၎င်းသည် URL ကိုအပိုင်းတစ်ခုစီ၏လုပ်ဆောင်မှုတစ်ခုစီကိုလွယ်ကူချောမွေ့စေရန် uniative ခင်းကျင်းမှုကိုခွဲခြမ်းထားသည်။
PHP 5 တွင် Parse_url တွင် အောက်ပါအင်္ဂါရပ်များရှိသည်။
ပုံမှန်မဟုတ်သည့်ပုံစံများဖြင့် URLs များအတွက်တစ်ခါတစ်ရံခွဲခြမ်းစိတ်ဖြာမှုရလဒ်များသည်မတိသို့မဟုတ်အမှားများပင်ဖြစ်လိမ့်မည်။
အကယ် . 0 င်လာနေသော URL သည်ဆွေမျိုးလမ်းကြောင်းဖြစ်လျှင်,
URL တွင်အဆန်းမဟုတ်သောဇာတ်ကောင်များသို့မဟုတ် encodings များပါ 0 င်သည့်အခါခွဲခြမ်းစိတ်ဖြာမှုရလဒ်များသည်မျှော်လင့်ထားသည့်အတိုင်းအတိအကျမဖြစ်နိုင်ပါ။
ဥပမာ -
<?php
$url = "http://gitbox.net:8080/path?arg=value#anchor";
print_r(parse_url($url));
?>
ထုတ်လုပ်မှု -
Array
(
[scheme] => http
[host] => gitbox.net
[port] => 8080
[path] => /path
[query] => arg=value
[fragment] => anchor
)
ပုံမှန်အားဖြင့် PHP 5 တွင်ပုံမှန်လုပ်ဆောင်သည်။ သို့သော်မမှန်မကန်သော URLs များကြုံတွေ့ရသောအခါအမှားများကိုခွဲခြမ်းစိတ်ဖြာလေ့ရှိသည်။
PHP 8 သည်အဓိကအားဖြင့် Parse_url ကိုတိုးတက်မှုများစွာရရှိခဲ့သည်။
PHP 8 သည် URL syntax အတည်ပြုချက်တွင်ပိုမိုတင်းကြပ်သည်။ PHP 5 တွင်လျစ်လျူရှုခံရမည့်အမှားအယွင်းများကိုရှောင်ရှားခြင်းတွင်အချို့သောအမှားများကိုရှောင်ရှားနိုင်သည်။ ဥပမာအားဖြင့် Parse_Url သည်ယခုအချိန်တွင် မှားယွင်းသော သို့မဟုတ်ခွဲခြမ်းစိတ်ဖြာခြင်းရလဒ်များကိုပြန်ပို့ရန်ပိုများသည်။
PHP 8 တွင်ဆွေမျိုးလမ်းကြောင်းများနှင့်မပြည့်စုံသော URL များနှင့်မပြည့်စုံသော URL များနှင့်မပြည့်စုံသော URLs များအတွက်ပိုမိုတည်ငြိမ်သောအပြုအမူများပြုလုပ်နိုင်သည်။
IPv6 လိပ်စာများပါ 0 င်သော URL များပါ 0 င်သည့် URL များကို unpv6 လိပ်စာများကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ parentheses များတွင်အမှားများကိုယခင်ဗားရှင်းများမှရှောင်ရှားသည့်အခါပိုမိုတိကျသည်။
ဥပမာ -
<?php
$url = "http://[::1]:8080/path?arg=value#anchor";
print_r(parse_url($url));
?>
ထုတ်လုပ်မှု -
Array
(
[scheme] => http
[host] => [::1]
[port] => 8080
[path] => /path
[query] => arg=value
[fragment] => anchor
)
သင်၏ကုဒ်သည် PHP 5 နှင့် PHP 8 နှင့်သဟဇာတဖြစ်ရန်လိုအပ်ပါက Parse_Url ခွဲခြမ်းစိတ်ဖြာခြင်းမပြုမီ URL ပုံစံကိုပုံမှန်သို့မဟုတ်အခြားနည်းလမ်းများအဖြစ်အတည်ပြုရန်အကြံပြုသည်။
code ပျက်ကျမှုကိုရှောင်ရှားရန် parsing ရလဒ်များအပေါ်တိကျခိုင်မာစွာဆုံးဖြတ်ချက်များချပါ ။
IPv6 လိပ်စာများသို့မဟုတ်စံသတ်မှတ်ထားသော URLs များကြုံတွေ့ရသောအခါဗားရှင်းကွဲပြားခြားနားမှုများကြောင့်ဖြစ်ပေါ်လာသောပြ problems နာများကိုရှောင်ရှားရန်အထူးလုပ်ဆောင်သောယုတ္တိဗေဒကိုရေးရန်အကောင်းဆုံးဖြစ်သည်။
ရှုထောင့် | PHP 5 | PHP 8 |
---|---|---|
Syntax အတည်ပြုခြင်း | format အမှားအယွင်းများကိုလျစ်လျူရှုရန်လွယ်ကူသည် | တင်းကြပ်စွာ, မှားယွင်းသော format ကိုအစောပိုင်းကထိတွေ့လိမ့်မည် |
ဆွေမျိုး URL အပြောင်းအလဲနဲ့ | ဖြစ်နိုင်သည်ကိုက်ညီမှုရလာဒ်ပြန်လာ | ပိုမိုကျိုးကြောင်းဆီလျော်သောကုသမှု, ပိုမိုတည်ငြိမ်သောရလဒ်များ |
IPv6 ပံ့ပိုးမှု | ကန့်သတ်ထားသောအထောက်အပံ့, bracket ကိုအပြောင်းအလဲနဲ့အတွက်အမှား | ပံ့ပိုးမှုစင်တာပြီးပြည့်စုံသောနှင့်တိကျစွာ parse iPv6 လိပ်စာများကိုကွင်းခတ်နှင့်အတူ |
အမှားအယွင်း | ရံဖန်ရံခါအမှားတစ်ခုသို့မဟုတ်မပြည့်စုံခင်းကျင်းရန် | ပိုပြီးအတိအလင်း မှားယွင်းသော သို့မဟုတ်အမှားမက်ဆေ့ခ်ျကိုပြန်ပို့ |
ယေဘုယျအားဖြင့် Php 8 ၏ Parse_url သည်ပိုမိုခိုင်မာသည့်တင်းကျပ်သောတင်းကျပ်စွာဖြစ်ပြီး PHP 8 ကိုအသုံးပြုခြင်း၏အပြုအမူသည်ယုံကြည်စိတ်ချရမှုနှင့်လုံခြုံမှုလိုအပ်သည့်စီမံကိန်းများအတွက်အကြံပြုသည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် URL fulsing ပြ problems နာများကိုသင်ကြုံတွေ့ရပါကလက်ရှိအသုံးပြုနေသော PHP ဗားရှင်းကိုပထမဆုံးသော PHP ဗားရှင်းကိုအတည်ပြုရန်အကြံပြုသည်။