php 判断访客是否为搜索引擎蜘蛛的函数代码


Posted in PHP onJuly 29, 2011
/** 
* 判断是否为搜索引擎蜘蛛 
* 
* @author Eddy 
* @return bool 
*/ 
function isCrawler() { 
$agent= strtolower($_SERVER['HTTP_USER_AGENT']); 
if (!empty($agent)) { 
$spiderSite= array( 
"TencentTraveler", 
"Baiduspider+", 
"BaiduGame", 
"Googlebot", 
"msnbot", 
"Sosospider+", 
"Sogou web spider", 
"ia_archiver", 
"Yahoo! Slurp", 
"YoudaoBot", 
"Yahoo Slurp", 
"MSNBot", 
"Java (Often spam bot)", 
"BaiDuSpider", 
"Voila", 
"Yandex bot", 
"BSpider", 
"twiceler", 
"Sogou Spider", 
"Speedy Spider", 
"Google AdSense", 
"Heritrix", 
"Python-urllib", 
"Alexa (IA Archiver)", 
"Ask", 
"Exabot", 
"Custo", 
"OutfoxBot/YodaoBot", 
"yacy", 
"SurveyBot", 
"legs", 
"lwp-trivial", 
"Nutch", 
"StackRambler", 
"The web archive (IA Archiver)", 
"Perl tool", 
"MJ12bot", 
"Netcraft", 
"MSIECrawler", 
"WGet tools", 
"larbin", 
"Fish search", 
); 
foreach($spiderSite as $val) { 
$str = strtolower($val); 
if (strpos($agent, $str) !== false) { 
return true; 
} 
} 
} else { 
return false; 
} 
}

网上倒是能搜到一大把,不过都是千篇一律的复制来复制去的,也不够全面,我这里整理了一份比较全面的代码:

function is_spider(){ 
$robot = 0; 
$USER_AGENT = strtolower($_SERVER['HTTP_USER_AGENT']); 
if(strpos($USER_AGENT,"bot")) $robot = 1; 
if(strpos($USER_AGENT,"spider")) $robot = 1; 
if(strpos($USER_AGENT,"slurp")) $robot = 1; 
if(strpos($USER_AGENT,"mediapartners-google")) $robot = 1; 
if(strpos($USER_AGENT,"fast-webcrawler")) $robot = 1; 
if(strpos($USER_AGENT,"altavista")) $robot = 1; 
if(strpos($USER_AGENT,"ia_archiver")) $robot = 1; 
if($robot == 1){ 
//do something 
} 
return ''; 
}
PHP 相关文章推荐
session 的生命周期是多长
Oct 09 PHP
在线增减.htpasswd内的用户
Oct 09 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 PHP
php实现多张图片上传加水印技巧
Apr 18 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
php抽象类和接口知识点整理总结
Aug 02 PHP
PHP goto语句用法实例
Aug 06 PHP
php.ini中date.timezone设置分析
Jul 29 #PHP
PHP调用Webservice实例代码
Jul 29 #PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 #PHP
一个典型的PHP分页实例代码分享
Jul 28 #PHP
新手学习PHP的一些基础知识分享
Jul 27 #PHP
php XPath对XML文件查找及修改实现代码
Jul 27 #PHP
简单的php写入数据库类代码分享
Jul 26 #PHP
You might like
生成缩略图
2006/10/09 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
php检测url是否存在的方法
2015/04/14 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
Python中类型关系和继承关系实例详解
2015/05/25 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
详解Python进程间通信之命名管道
2017/08/28 Python
关于Python数据结构中字典的心得
2017/12/04 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
就业推荐自我鉴定
2013/10/06 职场文书
自荐信包含哪些内容
2013/10/30 职场文书
煤矿班组长的职责
2013/12/25 职场文书
大学学习生活感言
2014/01/18 职场文书
授权委托书样本
2014/04/03 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
企业安全生产检查制度
2015/08/06 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
ubuntu下常用apt命令介绍
2022/06/05 Servers