php从查询字符串中删除单个变量值对

时间:2014-10-24 13:32:15

标签: javascript php

我有一个页面,根据众多参数列出项目,即带有值的变量。

listitems.php?color=green&size=small&cat=pants&pagenum=1等 为了能够编辑列表,我有一个参数edit = 1,它被附加到上面的查询字符串中以给出:

listitems.php?color=green&size=small&cat=pants&pagenum=1&edit=1 到目前为止一切都很好。

当用户完成编辑后,我有一个退出编辑模式的链接。我希望此链接指定整个查询字符串 - 无论它是什么,因为这取决于用户选择 - 除了删除edit=1

当我只有几个变量时,我只是在链接中手动列出它们,但现在还有更多变量,我希望能够以编程方式删除edit=1

我应该对edit = 1进行某种搜索,然后只替换它吗?

$qs = str_replace("&edit=1, "", $_SERVER['QUERY_STRING']);
<a href='{$_SERVER['PHP_SELF']}?{$qs}'>return</a>;

或者什么是最干净最无差错的方法。

注意:从一个页面到另一个页面我有类似的情况,我想取出pagenum并用另一个替换它。在那里,由于pagenum不同,我不能只搜索pagenum=1,但如果有任何不同,则必须搜索pagenum =$pagenum

1 个答案:

答案 0 :(得分:7)

您可以使用parse_str()来解析查询字符串,移除不需要的部分,并通过http_build_query()像这样构建新部分

parse_str($_SERVER['QUERY_STRING'], $params);
unset($params['edit']);
$new_query_string = http_build_query($params);