微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/php/138465.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐