2010-09-20 57 views
2

我使用这个功能PHP函数检查浏览器引用是否为空?

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

要检查如果访问者点击了一个链接或没有直接进入到这个特定页面。

我现在看到,ereg已被弃用,但没有知识的PHP将其转换为可能preg_match?

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

非常感谢!

回答

5

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

如果没有,使用empty()永远是可行的:

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

empty($_SERVER['HTTP_REFERER'])

0

空:

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

对于一个协议:

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

试试这个:

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

或者,如果您要检查它是否是空的,使用empty功能:

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