7
如何使用現有的查詢字符串將用戶重定向到同一頁面,但添加/修改爲「頁面」1。PHP添加/修改查詢字符串參數並獲取URL
我想1層的方法是:
- 解析
$_SERVER['QUERY_STRING']
到一個數組 - 是否存在數組中
page
,修改的值,否則將其添加 - 使用
http_build_query
得到查詢字符串追加到$_SERVER['PHP_SELF']
但是有沒有更好/更直接的方法?
如何使用現有的查詢字符串將用戶重定向到同一頁面,但添加/修改爲「頁面」1。PHP添加/修改查詢字符串參數並獲取URL
我想1層的方法是:
$_SERVER['QUERY_STRING']
到一個數組page
,修改的值,否則將其添加http_build_query
得到查詢字符串追加到$_SERVER['PHP_SELF']
但是有沒有更好/更直接的方法?
只是爲了確保你瞭解它,使用parse_str
解析您的查詢字符串:
<?php
parse_str($_SERVER['QUERY_STRING'], $query_string);
$query_string['page'] = basename($_SERVER['PHP_SELF']);
$rdr_str = http_build_query($query_string);
使用吉姆·魯賓斯坦的回答,我想出了,我想我可能會共用一個有用的功能:
function modQuery($add_to, $rem_from = array(), $clear_all = false){
if ($clear_all){
$query_string = array();
}else{
parse_str($_SERVER['QUERY_STRING'], $query_string);
}
if (!is_array($add_to)){ $add_to = array(); }
$query_string = array_merge($query_string, $add_to);
if (!is_array($rem_from)){ $rem_from = array($rem_from); }
foreach($rem_from as $key){
unset($query_string[$key]);
}
return http_build_query($query_string);
}
例如: <a href="?<?=modQuery(array('kind'=>'feature'))?>">Feature</a>
哦我看這一點,但錯過了在哪裏可以傳遞數組的部分 – 2011-05-05 05:43:59
肯定會讓事情變得更簡單! – 2011-05-05 05:44:40
注:對於'http_build_query',需要PECL庫pecl_http> = 0.21.0。 – 2012-02-10 00:30:05