如何获得没有id的referer url?

时间:2010-09-23 03:04:54

标签: php

我使用此代码获取referer url:

<?php echo $_SERVER['HTTP_REFERER']; ?>

输出是:

  

http://example.com/application/view/viewleave.php?idleave=1

我该怎么办?

  

http://example.com/application/view/viewleave.php

6 个答案:

答案 0 :(得分:3)

您可以在?字符后删除所有内容。

$text = "http://example.com/application/view/viewleave.php?idleave=1";
$output = substr($text,0,strrpos($text,'?'));
echo $output;

编辑:像其他人说的,如果字符串不包含'?',那么$ output将为空。所以你可以先用strrpos()

来检查

答案 1 :(得分:3)

使用:

$url = parse_url('http://example.com/application/view/viewleave.php?idleave=1');

你会得到这样的东西:

Array
(
    [scheme] => http
    [host] => example.com
    [path] => /application/view/viewleave.php
    [query] => idleave=1
)

并合并。

答案 2 :(得分:1)

只需检查字符串中的'?'字符。如果它存在,则取其前面的子串,否则取整个字符串。

答案 3 :(得分:0)

echo substr($_SERVER['HTTP_REFERER'],0,strpos($_SERVER['HTTP_REFERER'],"?"));

答案 4 :(得分:0)

我会说

str_replace('?'.parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY), '', $_SERVER['HTTP_REFERER']);

答案 5 :(得分:0)

谢谢大家的帮助。我在阅读你的回复后得到了解决。

<?php
$referer = $_SERVER['HTTP_REFERER'];
$pos = strpos($referer, '?');
if ($pos !== false) {
$output = substr($referer,0,strrpos($referer,'?'));
}
else
{
$output = $referer;
}
echo $output;
?>