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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |