用于检查浏览器引用是否为空的PHP函数?

时间:2010-09-20 18:24:19

标签: php

我正在使用此功能

ereg('http://.',$_SERVER['HTTP_REFERER']) != 1

检查访问者是否点击了链接或是否直接输入此特定页面。

我现在看到ereg已弃用,但不知道php将其转换为preg_match?

有没有其他方法可以检查引用者是否为空?

非常感谢!!

4 个答案:

答案 0 :(得分:5)

您的正则表达式只接受以http://开头的引用者。因此,如果某人从https://页面导航到您的脚本,则引用者将注册为空。有什么具体原因吗?

如果没有,使用empty()将始终有效:

if (!empty($_SERVER['HTTP_REFERER']))

答案 1 :(得分:0)

empty($_SERVER['HTTP_REFERER'])

答案 2 :(得分:0)

为空:

!empty($_SERVER['HTTP_REFERER']);

对于协议:

strlen(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_SCHEME)) > 0

答案 3 :(得分:0)

试试这个:

if (preg_match('#http://#', $_SERVER['HTTP_REFERER'])){
  // match found...
}

或者如果您想检查它是否为空,请使用empty功能:

if (!empty($_SERVER['HTTP_REFERER'])){
  // match found...
}