PHP如何在链接中保留所有GET变量?

时间:2009-04-25 22:26:50

标签: php variables get hyperlink

我有一些PHP代码可以动态生成动态数据表。通过单击各种链接,您可以“优化”数据表。我想要的是这些链接中的每一个都保留当前的GET信息并添加到其中。 IE:

$allPreviousVars = ???; // Could be 20+ vars
echo "<a href='".$allPreviousVars."&newVar=2'>Link</a>";

我可以通过循环迭代$ _GET来想办法,但肯定有更快的方法吗?

5 个答案:

答案 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。