我有一些PHP代码可以动态生成动态数据表。通过单击各种链接,您可以“优化”数据表。我想要的是这些链接中的每一个都保留当前的GET信息并添加到其中。 IE:
$allPreviousVars = ???; // Could be 20+ vars
echo "<a href='".$allPreviousVars."&newVar=2'>Link</a>";
我可以通过循环迭代$ _GET来想办法,但肯定有更快的方法吗?
答案 0 :(得分:8)
$ _SERVER [“QUERY_STRING”]怎么样?
编辑:由于你很友好地赞成这个答案,我应该补充一点。在输出之前,您应该将上面的变量包装在htmlspecialchars()中。否则,有人可能会在其中键入包含">
的网址,这会破坏您的链接。
答案 1 :(得分:2)
我这样做如下:
<?php echo http_build_query(array_merge($_GET, array('foo'=>'bar', 'foo2'=>'bar2')); ?>
请注意,任何现有的'foo'或'foo2'键都会被替换。
答案 2 :(得分:1)
如果需要从修改后的数组生成查询字符串,请使用http_build_query()。如果您只想将查询字符串发送到当前页面,请按照建议操作并使用$ _SERVER [“QUERY_STRING”]。
答案 3 :(得分:1)
我可能会这样做:
$query = mySanitizeFunction($_GET);
$url = http_build_query($query) . '&newVar=2';
答案 4 :(得分:-1)
正如您所建议的那样,最好的办法是循环遍历$_GET
的内容,从现有查询参数和被覆盖的位的混合构造URL。