0

我在从 url 中删除特定查询字符串时遇到问题。我想保留其余的查询,但只是转储最后一个。问题是查询字符串每次都可能有不同的值,所以我不知道该怎么做。

例如我的网站网址可能是:

http://sitename.com/index.php?Cat=Bus&Origin=UK

我想做的是保留 Cat=Bus 并删除 Origin=UK

因此,如果我尝试将原产地更改为德国,我会写:

echo '<a href="'.$_SERVER['REQUEST_URI'].'&Origin=Germany">Germany</a>';

所以它需要它所在的页面:

http://sitename.com/index.php?Cat=Bus&Origin=UK

使用 Request_URI。然后我想把它从 &Origin=* 中去掉,然后一旦完成,就把它传递到一个字符串中,并在最后添加新的原点。

我想:

$theURI = $_SERVER['REQUEST_URI'];

但我不知道如何从头到尾。

$amended = $theURI - '&Origin=*'

然后结束

echo '<a href="'.$amended.'&Origin=Germany">Germany</a>';

我只是不知道如何在 PHP 中表达 $amended 函数。

有人可以帮忙吗?这被用于国家之间的分类

4

2 回答 2

1

根据您获取来源的方式(静态 url 与动态 url),这是对$_GET超全局的简单操作。

$url = $_SERVER['REQUEST_URI']; //edit: I usually use $_SERVER['PHP_SELF'], so try this if REQUEST_URI fails
$get_param = $value; //$value can be germany, england, poland, etc etc
$url .= "&Origin=".$get_param;
echo "<a href='".$url."'>$get_param</a>";

我希望这有帮助

于 2012-12-15T09:35:01.603 回答
1

如果您知道确切的变量并且它们并不多,您可以使用 Dale 的评论:

echo '<a href="/index.php?Cat=' . $_GET['Cat'] . '&Origin=Germany">Germany</a>';

如果没有,您可以使用 str_replace:

$url = $_SERVER['REQUEST_URI'];
$url = str_replace("origin=" . $_GET["origin"], "", $url);
$url = preg_replace("#&+#", "&", $url);
... 
echo "<a href='" . $url . "&origin=Germany"'>Germany</a>";
于 2012-12-15T09:46:55.357 回答