如何修剪$ _SERVER [' HTTP_REFERER']

时间:2012-03-29 12:12:54

标签: php url header texttrimming

在处理之后,我使用以下方式在上一页上发送用户:

header('Location: ' . $_SERVER['HTTP_REFERER'] . '?Add=Successful');

现在它将我发送到我的 add.php

http://localhost/add.php?Add=Successful

当我再添加一个数据时,标题位置会传递以下内容:

http://localhost/add.php?Add=Successful?Add=Successful

我想要的是将标题位置修剪到问号:

让我们说点$_SERVER['HTTP_REFERER']直到?然后将其保存到变量中,这样如果关键字?存在,它应该再次修剪为http://localhost/add.php然后通过将该变量放入标题位置,以便它可以变为这样:

header('Location: ' . $trimmedHeader . '?Add=Successful');

4 个答案:

答案 0 :(得分:8)

您还可以使用PHP parse_url()函数。

$url = parse_url($_SERVER['HTTP_REFERER']);
$trimmedHeader = $url['scheme'] . '://' . $url['host'] . $url['path'];
header('Location: ' . $trimmedHeader . '?Add=Successful');

答案 1 :(得分:0)

preg_replace('/(.*)\?/',$_SERVER['HTTP_REFERER'],'\1');

答案 2 :(得分:0)

这将返回字符串中第一个问号之前的所有内容。

$trimmedheader = array_shift(explode("?", $_SERVER['HTTP_REFERER']));

答案 3 :(得分:0)

$urlArray = parse_url($_SERVER['HTTP_REFERER']);
$newUrl = $urlArray['scheme'].'://'.$urlArray['host'].$urlArray['path'].'?Add=Successful';
header("Location: $newUrl");

这已经过测试并且工作正常....