君山 发表于 2020-9-29 12:41:22

Discuz checkrobot 函数 判断蜘蛛机器人访问函数

函数说明:

本函数通过分析全局变量$_SERVER中的$_SERVER['HTTP_USER_AGENT']根据$useragent关键词判断该访问是否是蜘蛛(机器人),当然由于只是关键词匹配,所以还是存在一定的误判,有兴趣的可以对此方法进行改进;


// 判断蜘蛛(机器人)访问函数

function checkrobot($useragent = '') {
        static $kw_spiders = array('bot', 'crawl', 'spider' ,'slurp', 'sohu-search', 'lycos', 'robozilla');
        static $kw_browsers = array('msie', 'netscape', 'opera', 'konqueror', 'mozilla');

        $useragent = strtolower(empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent);
        if(dstrpos($useragent, $kw_spiders)) return true;
        if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false;
        return false;
}
}


//举个例子
if(checkrobot()){
        //是蜘蛛(机器人),执行流程
}else{
        //不是是蜘蛛(机器人),执行流程
}
页: [1]
查看完整版本: Discuz checkrobot 函数 判断蜘蛛机器人访问函数