[英]PHP: Remove all but one query string variables
假設我有以下內容,即當前網址:
http://myurl.com/locations/?s=bricks&style=funky-quirky+rustic&feature=floors-concrete+kitchen+bathroom
我如何使用PHP刪除除 S
以外的所有參數? 換句話說,只需離開: http://myurl.com/locations/?s=bricks
: http://myurl.com/locations/?s=bricks
其他參數將始終是Style,Type,Feature和Area,並且可能存在其中一些或全部。
謝謝!
如果您知道s
始終是第一個參數,則只需執行以下操作:
$url = "http://myurl.com/locations/?s=bricks&style=funky-quirky+rustic&feature=floors-concrete+kitchen+bathroom";
$split = explode('&',$url);
echo $split[0];
但是,如果s
在參數中的位置未知,則可以執行以下操作:
$url = "http://myurl.com/locations/?s=bricks&style=funky-quirky+rustic&feature=floors-concrete+kitchen+bathroom";
$split = explode('?',$url);
parse_str($split[1],$params);
echo $split[0].'?s='.$params['s'];
if ( isset($_GET['s']) && count($_GET) > 1 ) {
header('Location: ?s='. rawurlencode($_GET['s']));
exit;
}
編輯使喬恩有些安撫。
您可以通過幾種不同的方式來實現。
我將向您展示使用url所面臨的最佳標准:
$originUrl = parse_url('http://myurl.com/locations/?s=bricks&style=funky-quirky+rustic&feature=floors-concrete+kitchen+bathroom');
parse_str($originUrl['query'], $queryString);
echo $newUrl = $originUrl['scheme'].'://'.$originUrl['host'].$originUrl['path'].'?s='.$queryString['s'];
祝好運!
parse_str(parse_url($url, PHP_URL_QUERY), $query);
$newurl = 'http://myurl.com/locations/?s=' . $query['s'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.