[英]PHP How do I retain all GET vars in links?
我有一些PHP代码可以动态生成动态数据表。 通过单击各种链接,您可以“优化”数据表。 我想要的是这些链接中的每一个都保留当前的GET信息并添加到其中。 IE:
$allPreviousVars = ???; // Could be 20+ vars
echo "<a href='".$allPreviousVars."&newVar=2'>Link</a>";
我可以通过循环迭代$ _GET来想办法,但肯定有更快的方法吗?
$ _SERVER [“QUERY_STRING”]怎么样?
编辑:既然你很友好地给我这个答案,我应该补充一点。 在输出之前,您应该将上面的变量包装在htmlspecialchars()中。 否则,有人可以在其中键入带有">
的网址,这会破坏您的链接。
我这样做如下:
<?php echo http_build_query(array_merge($_GET, array('foo'=>'bar', 'foo2'=>'bar2')); ?>
请注意,任何现有的'foo'或'foo2'键都将被替换。
如果需要从修改后的数组生成查询字符串,请使用http_build_query() 。 如果您只想将查询字符串发送到当前页面,请按照建议操作并使用$ _SERVER [“QUERY_STRING”]。
我可能会这样做:
$query = mySanitizeFunction($_GET);
$url = http_build_query($query) . '&newVar=2';
你最好的选择是,如你所建议的那样,循环遍历$_GET
的内容,从现有查询参数和被覆盖的位的混合构造URL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.