1

我想创建一个更改 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

4 回答 4

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)));
于 2012-12-17T15:59:57.950 回答
1

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

if(isset($_GET['variable'] && $_GET['variable'] == 'hello') {
   header('Location: http://site.com/index&variable=world');
   exit;
}
于 2012-12-17T15:58:37.970 回答
0

这应该这样做。

<a href="variable=world <?php foreach ($_GET as $key => $value) {echo '&&'.$key.'='.$value}">Click me</a>
于 2012-12-17T16:01:54.747 回答
0

url 中的变量或参数以 a 开头?,然后用 . 分隔&

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

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

但这是硬编码而不是动态的,因为您可以动态更改参数的值,所以我的答案可能不是最好的。

于 2012-12-17T15:58:44.940 回答