PHP从url中删除查询字符串

时间:2011-08-31 07:45:50

标签: php

我正在建立一个网站,但我遇到了一些我不知道该怎么做的事情。

我的网站成员可以点击的每个页面都有一个链接,当他们这样做时,会将他们带到同一页面,最后会有一个查询,还有一个确认链接,如;

/contact?tab=hotlink

现在在这个页面上有一个隐藏的表单和一个确认按钮,我打算使用$ _SERVER ['HTTP_REFERER'],但是之前的网址是/ contact?tab = hotlink,我需要它... < / p>

/contact

有没有办法用字符串替换所有查询,我可以用会话来做,但宁愿用另一种方式做,因为这意味着设置了很多不必要的会话。

由于

4 个答案:

答案 0 :(得分:3)

查询字符串在

$_SERVER['QUERY_STRING']

所以

str_replace( $_SERVER['QUERY_STRING'], '', $_SERVER['HTTP_REFERER'] )

应该在没有查询字符串的情况下提供请求。

答案 1 :(得分:2)

使用php explode function通过在?上分割字符串,从引用者中提取基本网址:

$http_referer_full_url = explode("?", $_SERVER["HTTP_REFERER"]);
$http_referer_base_url = $http_referer_full_url[0];

@Rijk的答案不起作用,因为示例中的$_SERVER['QUERY_STRING']引用了当前正在执行的脚本,而不是来自引荐来源页面的查询字符串。

答案 2 :(得分:0)

通常你不会为此进行页面刷新和查询字符串 - 你会链接到#hashed网址,如下所示:

<a href="/contact#tab=hotlink">Hotlink</a>

然后使用Javascript处理程序捕获hashchange event(不需要页面刷新,因此速度更快)并在“热链接”选项卡上动态加载/显示您需要的任何内容。

这样,服务器甚至无法参与,您的页面响应速度也会更快。

答案 3 :(得分:0)

您可以将$_SERVER['SCRIPT_NAME']用于此