我使用此代码获取referer url:
<?php echo $_SERVER['HTTP_REFERER']; ?>
输出是:
我该怎么办?
答案 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;
?>