PHP判断搜索引擎机器人Robot_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:PHP的print函数
PHP的print函数,姑且说是函数吧

有朋友问到如何使用PHP去判断是否是搜索引擎,其实PHP有个很简单的方式去实现,通过_SERVER这个预定义变量中的_SERVER['HTTP_USER_AGENT']可以取得访问者的属性,具体可以看下Diiscuz!是如何判断搜索引擎的,函数代码如下:
function getrobot() {
if(!defined('IS_ROBOT')) {
kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if(preg_match("/(kw_browsers)/", _SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', FALSE);
} elseif(preg_match("/(kw_spiders)/", _SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', TRUE);
} else {
define('IS_ROBOT', FALSE);
}
}
return IS_ROBOT;
}

根据上面还可以精简如下:
if(preg_match("/(Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i", _SERVER['HTTP_USER_AGENT'])) {
echo 'robot';
}

如果你需要返回详细的搜索引擎名称,而不是是否是搜索引擎机器人的话,请看下面的代码:
function get_naps_bot() {
useragent = strtolower(_SERVER['HTTP_USER_AGENT']);

if (strpos(useragent, 'googlebot') !== false){
return 'Googlebot';
}

if (strpos(useragent, 'msnbot') !== false){
return 'MSNbot';
}

if (strpos(useragent, 'slurp') !== false){
return 'Yahoobot';
}

if (strpos(useragent, 'baiduspider') !== false){
return 'Baiduspider';
}

if (strpos(useragent, 'sohu-search') !== false){
return 'Sohubot';
}

if (strpos(useragent, 'lycos') !== false){
return 'Lycos';
}

if (strpos(useragent, 'robozilla') !== false){
return 'Robozilla';
}
return false;
}

这段代码返回了详细的搜索引擎机器人的名称,呵呵大家看那种好用就用哪种吧!

 

分享:PHP生成随机字符串
PHP生成随机字符串的函数,下面是我在网上找到的2个关于PHP随机字符串的函数,希望大家喜欢。 ?php function genRandomString(len) { chars = array( a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t,

来源:模板无忧//所属分类:PHP教程/更新时间:2010-04-11
相关PHP教程