我有一个页面,根据众多参数列出项目,即带有值的变量.
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是否有任何区别.
您可以使用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)