Discuz!大师网

搜索
查看: 1208|回复: 0

Discuz!开发之判断蜘蛛(机器人)访问函数checkrobot()介绍

[复制链接]
发表于 2017-4-10 23:21:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
方法定义文件:\source\function\function_core.php
checkrobot()代码如下:
  1. function checkrobot($useragent = '') {
  2.         static $kw_spiders = array('bot', 'crawl', 'spider' ,'slurp', 'sohu-search', 'lycos', 'robozilla');
  3.         static $kw_browsers = array('msie', 'netscape', 'opera', 'konqueror', 'mozilla');

  4.         $useragent = strtolower(empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent);
  5.         if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false;
  6.         if(dstrpos($useragent, $kw_spiders)) return true;
  7.         return false;
  8. }
复制代码


函数说明:
本函数通过分析全局变量$_SERVER中的$_SERVER['HTTP_USER_AGENT']根据$useragent关键词判断该访问是否是蜘蛛(机器人),当然由于只是关键词匹配,所以还是存在一定的误判,有兴趣的可以对此方法进行改进;
使用方法举例:
  1. if(checkrobot()){
  2.         //是蜘蛛(机器人),执行流程
  3. }else{
  4.         //不是是蜘蛛(机器人),执行流程
  5. }
复制代码


回复 马甲回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网站地图|小黑屋|展会网|Discuz站长论坛 |天天打卡

GMT+8, 2024-4-29 20:09 , Processed in 0.025529 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表