2012-02-04 80 views
4

如果我有网址mysite.com/test.php?id=1。页面加载时设置为id,并且可以是任何内容。在那里也可能有其他人,如?id=1&sort=new。有没有办法只是添加另一个到最后没有找出其他人先建立一个新的网址?谢谢。PHP:将参数添加到网址?

回答

20

作为Kolink的答案的替代方案,我想我会利用http_build_query()。这样,如果查询字符串中没有任何内容,则不会再获得额外的&。尽管如此,它并没有真正有所作为。 Kolink的回答非常好。我张贴这主要向您介绍http_build_query(),因为你可能会需要它更高版本:

http_build_query(array_merge($_GET, array('newvar'=>'123'))) 

基本上,我们使用http_build_query()采取一切$_GET,与我们想要的任何其它参数数组进行合并。在这个例子中,我只是使用示例参数即时创建一个数组。在实践中,你可能已经有一个这样的数组。

+0

ahha欢呼; p d – 2012-02-04 04:58:34

+1

theres没有伤害插入获得变量直接进入html的权利? – 2012-02-04 05:07:15

+1

@AndyLobel,当然有伤害!你应该使用'htmlspecialchars()'在任何** PHP变量上回显你的页面。否则,你可以开启自己的XSS。你不知道这个变量是什么,除非你可以保证它是严格的数字或其他东西。即便如此,出于谨慎,我每次都使用'htmlspecialchars()'。 – Brad 2012-02-04 17:37:29

2
"?".$_SERVER['QUERY_STRING']."&newvar=123"; 

就是这样的。

+0

cheeeerss; p even tho remeba当页面重新加载时,如果你尝试再次点击相同的链接,它会去?id = 1&newvar = 123&newvar = 123 – 2012-02-04 04:16:32

+0

有没有办法摆脱它,如果它已经设置? – 2012-02-04 04:23:34