加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:43:40 所属栏目:PHP教程 来源:网络整理
导读:我有一个页面,根据众多参数列出项目,即带有值的变量. listitems.php?color=greensize=smallcat=pantspagenum=1 etc. 为了能够编辑列表,我有一个参数edit = 1,它被附加到上面的查询字符串中以给出: listitems.php?color=greensize=smallcat=pantspagenum=1ed
我有一个页面,根据众多参数列出项目,即带有值的变量.
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读