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

AMi*_*Ngh 0 javascript php

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

listitems.php?color=green&size=small&cat=pants&pagenum=1
为了使列表的编辑,我有被附加到上述的查询字符串的参数编辑= 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>;
Run Code Online (Sandbox Code Playgroud)

或者这是最干净最无差错的方法.

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

ker*_*ero 7

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

parse_str($_SERVER['QUERY_STRING'], $params);
unset($params['edit']);
$new_query_string = http_build_query($params);
Run Code Online (Sandbox Code Playgroud)