php实现判断访问来路是否为搜索引擎机器人的方法


Posted in PHP onApril 15, 2015

本文实例讲述了php实现判断访问来路是否为搜索引擎机器人的方法。分享给大家供大家参考。具体分析如下:

很多时候我们需要对网站访客来路进行识别,针对真实用户与搜索引擎作不同动作实现,那么首先就需要判断是否为搜索引擎。

php判断方法非常简单,通过过滤$_SERVER['HTTP_USER_AGENT'] 参数即可进行识别,以下是摘录某开源程序的相关源码:

private function getRobot()
{
 if (empty($_SERVER['HTTP_USER_AGENT']))
 {
  return false;
 }
 $searchEngineBot = array(
  'googlebot'=>'google',
  'mediapartners-google'=>'google',
  'baiduspider'=>'baidu',
  'msnbot'=>'msn',
  'yodaobot'=>'yodao',
  'youdaobot'=>'yodao',
  'yahoo! slurp'=>'yahoo',
  'yahoo! slurp china'=>'yahoo',
  'iaskspider'=>'iask',
  'sogou web spider'=>'sogou',
  'sogou push spider'=>'sogou',
  'sosospider'=>'soso',
  'spider'=>'other',
  'crawler'=>'other',
 );
 $spider = strtolower($_SERVER['HTTP_USER_AGENT']);
 foreach ($searchEngineBot as $key => $value)
 { 
  if (strpos($spider, $key)!== false)
  {
   return $value;
  }
 }
 return false;
}
public function isRobot()
{
 if($this->getRobot()!==false)
 {
  return true;
 }
 return false;
}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
php 在windows下配置虚拟目录的方法介绍
Jun 26 PHP
测试php函数的方法
Nov 13 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
php类的自动加载操作实例详解
Sep 28 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
Laravel框架查询构造器简单示例
May 08 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 #PHP
php获取Google机器人访问足迹的方法
Apr 15 #PHP
分享自定义的几个PHP功能函数
Apr 15 #PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 #PHP
PHP也能干大事 随机函数
Apr 14 #PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 #PHP
微信公众平台之快递查询功能用法实例
Apr 14 #PHP
You might like
一个程序下载的管理程序(四)
2006/10/09 PHP
杏林同学录(九)
2006/10/09 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP 正则表达式小结
2015/02/12 PHP
Yii使用技巧大汇总
2015/12/29 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
JSON相关知识汇总
2015/07/03 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
纯JS实现轮播图
2017/02/22 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
python实现弹窗祝福效果
2019/04/07 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Python识别html主要文本框过程解析
2020/02/18 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
JVM是一个编译程序还是解释程序
2012/09/11 面试题
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
管理标语大全
2014/06/24 职场文书
开场白怎么写
2015/06/01 职场文书
用python实现监控视频人数统计
2021/05/21 Python
python 多态 协议 鸭子类型详解
2021/11/27 Python