PHP的;从查询字符串中删除单个变量值对

前端之家收集整理的这篇文章主要介绍了PHP的;从查询字符串中删除单个变量值对前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个页面,根据众多参数列出项目,即带有值的变量.
listitems.PHP?color=green&size=small&cat=pants&pagenum=1 etc.

为了能够编辑列表,我有一个参数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.

谢谢.

我使用 http_build_query,它很好地接受一系列参数并正确格式化.您可以从$_GET中取消设置编辑参数,并将其余部分推送到此函数中.

请注意,您的代码缺少对htmlspecialchars()的调用. URL可以包含HTML中活动的字符.因此,当它输出链接时:逃生!

一些例子:

unset($_GET['edit']); // delete edit parameter;
$_GET['pagenum'] = 5; // change page number
$qs = http_build_query($_GET);

... output link here.

猜你在找的PHP相关文章