我有一个页面,该页面根据众多参数(即带有值的变量)列出项目。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
(如果有什么区别)。 最佳答案
您可以使用parse_str()
解析查询字符串,删除不需要的部分,并通过http_build_query()
像这样构建新的部分
parse_str($_SERVER['QUERY_STRING'], $params);
unset($params['edit']);
$new_query_string = http_build_query($params);