新版本的discuz x3.4和老版本的discuz x2.5有区别,判断是否搜索引擎蜘蛛,我们可以看到是IS_ROBOT这个函数来进行的,判断搜索引擎蜘蛛的定义函数IS_ROBOT在\source\function\function_core.php这个文件里面,新版本是这样写的:
- 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;
- }
复制代码
旧版本的discuz是这样写的:
- function getrobot() {
- if(!defined('IS_ROBOT')) {
- $kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
- $kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
- if(!strexists($_SERVER['HTTP_USER_AGENT'], 'http://') && preg_match("/($kw_browsers)/i", $_SERVER['HTTP_USER_AGENT'])) {
- define('IS_ROBOT', FALSE);
- } elseif(preg_match("/($kw_spiders)/i", $_SERVER['HTTP_USER_AGENT'])) {
- define('IS_ROBOT', TRUE);
- } else {
- define('IS_ROBOT', FALSE);
- }
- }
- return IS_ROBOT;
- }
复制代码 |