用链接更改PHP GET?

时间:2012-12-17 15:55:54

标签: php

我想创建一个更改PHP $_GET变量的链接。例如:

URL: http://site.com/index&variable=hello&anothervariable=dontchangeme

<a href="variable=world">Click me</a>

(after click)

URL: http://site.com/index&variable=world&anothervariable=dontchangeme

我知道你可以这样做只是改变页面(href="1.html"),但我想在维护已经存在的GET变量的同时做同样的事情。

4 个答案:

答案 0 :(得分:7)

$query = array('variable' => 'world') + $_GET;

printf('<a href="index?%s">Click me</a>', http_build_query($query));

http://php.net/http_build_query。这是易于理解的最小版本。正确地说,您还需要对生成的查询字符串进行HTML转义(因为您将其放入HTML中):

printf('<a href="index?%s">Click me</a>', htmlspecialchars(http_build_query($query)));

答案 1 :(得分:1)

您可以简单地重定向用户更改变量值并使用header() ..

if(isset($_GET['variable'] && $_GET['variable'] == 'hello') {
   header('Location: http://site.com/index&variable=world');
   exit;
}

答案 2 :(得分:0)

网址中的变量或参数前面带有?,然后它们由&分隔。

要获得您想要的内容,请使用以下链接:

<a href="http://site.com/index?variable=world&anothervariable=dontchangeme">Click me</a>

但是这是硬编码的,而不是动态的,你可以动态地改变参数的值,所以我的答案可能不是最好的。

答案 3 :(得分:0)

这应该这样做。

<a href="variable=world <?php foreach ($_GET as $key => $value) {echo '&&'.$key.'='.$value}">Click me</a>