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 相关文章推荐
用php将任何格式视频转为flv的代码
Sep 03 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
PHP中比较时间大小实例
Aug 21 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
Mar 11 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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
php中截取字符串支持utf-8
2007/01/18 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
php实现word转html的方法
2016/01/22 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
JavaScript声明变量名的语法规则
2015/07/10 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
python将回车作为输入内容的实例
2018/06/23 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Python列表与元组的异同详解
2019/07/02 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python JSON编解码方式原理详解
2020/01/20 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
党员思想汇报范文
2013/12/30 职场文书
地理教师岗位职责
2014/03/16 职场文书
党员自我评价范文2015
2015/03/03 职场文书