လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Parse_URL + http_build_query နှင့်အတူ URL parameters တွေကိုဘယ်လိုပြုပြင်မလဲ

Parse_URL + http_build_query နှင့်အတူ URL parameters တွေကိုဘယ်လိုပြုပြင်မလဲ

gitbox 2025-05-28

0 က်ဘ်အပလီကေးရှင်းများကိုတီထွင်သောအခါ URL parameteters များ၏စီမံခန့်ခွဲမှုသည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ သင်သည် parameters တွေကိုအသစ်များထည့်ရန်, လက်ရှိ parameters တွေကိုပြုပြင်ရန်သို့မဟုတ်အချို့သော parameterse ပယ်ဖျက်ရန်လိုအပ်လိမ့်မည်။ PHP တွင် PHP, Parse_URL () နှင့် http_build_Query () တွင်ဤအလုပ်များကိုအလွယ်တကူဖြည့်ဆည်းပေးနိုင်သည့်အလွန်လက်တွေ့လုပ်ဆောင်ချက်နှစ်ခုရှိသည်။

Parse_Url () ကို URLs များကိုဖြိုခွဲရန် Parse_Stret () ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်ဖြစ်ပြီး Parse_Str () နှင့် http_build_Query () နှင့် http_build_Query () ကို အသုံးပြုပါ။

1 ။ URL ကိုခွဲခြမ်းစိတ်ဖြာခြင်း

Parse_Url () url ကို scheme (protocol), host (host), လမ်းကြောင်း (Path), Query (Path),

 $url = "https://gitbox.net/search?q=php&page=2";
$parts = parse_url($url);
print_r($parts);

ထုတ်လုပ်မှု -

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /search
    [query] => q=php&page=2
)

2 ။ စုံစမ်းမှုဆိုင်ရာသတ်မှတ်ချက်များခွဲခြမ်းစိတ်ဖြာခြင်းခွဲခြမ်းစိတ်ဖြာ

စုံစမ်းမှုဆိုင်ရာသတ်မှတ်ချက်များကိုပြုပြင်ရန်သင် မေးမြန်းခြင်း အပိုင်းကို Associative Array သို့ပထမဆုံးခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည်။ Parse_Str () ကို သုံးနိုင်သည်။

 parse_str($parts['query'], $queryParams);

ဤအချက်မှာ $ iderparams သည် -

 Array
(
    [q] => php
    [page] => 2
)

3 ။ parameters တွေကိုပြုပြင်မွမ်းမံ

ပုံမှန်ခင်းကျင်းခြင်းကဲ့သို့သော parameters များကိုသင်လည်ပတ်နိုင်သည်။

 $queryParams['page'] = 3;         // parameters တွေကိုပြုပြင်မွမ်းမံ
$queryParams['lang'] = 'zh';      // parameters တွေကိုထည့်ပါ
unset($queryParams['q']);         // parameters တွေကိုဖျက်ပါ

4 ။ စုံစမ်းမှု string ကိုပြန်လည်တည်ဆောက်

parameter သည် string သို့ပြန်သွားရန် http_build_query () ကို သုံးပါ။

 $newQuery = http_build_query($queryParams);

ထို့နောက် Query string ကိုမူလ URL သို့ပြန်ကြည့်ပါ။

 $newUrl = $parts['scheme'] . '://' . $parts['host'] . $parts['path'] . '?' . $newQuery;
echo $newUrl;

ထုတ်လုပ်မှု -

 https://gitbox.net/search?page=3&lang=zh

V. ပြီးပြည့်စုံသောဥပမာ

အောက်ဖော်ပြပါသည်မူလ URL တွင်ဖြတ်သန်းသွားနိုင်သည့်ပြီးပြည့်စုံသော function တစ်ခုဖြစ်သည်။

 function modify_url_params($url, $modifications = [], $remove = []) {
    $parts = parse_url($url);

    parse_str($parts['query'] ?? '', $queryParams);

    // ပြုပြင်မွမ်းမံလျှောက်ထားပါ
    foreach ($modifications as $key => $value) {
        $queryParams[$key] = $value;
    }

    // parameters တွေကိုဖျက်ပါ
    foreach ($remove as $key) {
        unset($queryParams[$key]);
    }

    $newQuery = http_build_query($queryParams);

    $newUrl = $parts['scheme'] . '://' . $parts['host'];
    if (isset($parts['path'])) {
        $newUrl .= $parts['path'];
    }
    if ($newQuery) {
        $newUrl .= '?' . $newQuery;
    }

    return $newUrl;
}

// နမူနာခေါ်ဆိုမှု
$originalUrl = "https://gitbox.net/search?q=php&page=2";
$newUrl = modify_url_params($originalUrl, ['page' => 1, 'lang' => 'zh'], ['q']);
echo $newUrl;

ထုတ်လုပ်မှု -

 https://gitbox.net/search?page=1&lang=zh

6 ။ အကျဉ်းချုပ်

Parse_Url () , parse_str () နှင့် http_build_Query) ကိုပေါင်းစပ်ခြင်းအားဖြင့် URL စုံစမ်းမှုသတ်မှတ်ချက်များကိုကျွန်ုပ်တို့ပြောင်းလွယ်ပြင်လွယ်, ပြုပြင်ရန်နှင့်ဖျက်ပစ်နိုင်သည်။ ဤနည်းလမ်းသည်ရှင်းရှင်းလင်းလင်းမသာဖြစ်သော်လည်း redirect links များ, လှုပ်ခတ်ခြင်း, ပြောင်းလဲနေသောစစ်ထုတ်ခြင်းအခြေအနေများကိုကိုင်တွယ်ခြင်းကဲ့သို့သောလက်တွေ့ကျသောအခြေအနေအမျိုးမျိုးအတွက်လည်းသင့်တော်သည်။