我在从网址中删除特定查询字符串时遇到问题。我想保留其余的查询,但只是转储最后一个。问题是查询字符串每次都可能有不同的值,所以我不知道如何做到这一点。
例如我的网站网址可能是:
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。 我想剥掉它&amp; Origin = * 然后,一旦完成它就将它传递给一个字符串并添加新的原点在最后。
我想:
$theURI = $_SERVER['REQUEST_URI'];
但我不知道如何从头到尾。
$amended = $theURI - '&Origin=*'
然后以
结束echo '<a href="'.$amended.'&Origin=Germany">Germany</a>';
我只是不知道如何在PHP中表达这个$ modified函数。
有人可以帮忙吗?这用于在国家之间进行分类
答案 0 :(得分:1)
取决于您获取原点的方式(静态网址与动态网址),这是对$_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>";
我希望这会有所帮助
答案 1 :(得分: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>";