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