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 相关文章推荐
杏林同学录(七)
Oct 09 PHP
一段php加密解密的代码
Jul 16 PHP
PHP clearstatcache()函数详解
Mar 02 PHP
PHP操作数组相关函数
Feb 03 PHP
ThinkPHP模板自定义标签使用方法
Jun 26 PHP
php无限分类使用concat如何实现
Nov 05 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
PHP6新特性分析
Mar 03 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
Laravel 自带的Auth验证登录方法
Sep 30 PHP
调试php程序的简单步骤
Oct 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 远程关机操作的代码
2008/12/05 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
Python计时相关操作详解【time,datetime】
2017/05/26 Python
matplotlib中legend位置调整解析
2017/12/19 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
简述安装Slackware Linux系统的过程
2012/01/12 面试题
高中生期末评语
2014/01/28 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
工程款催款函
2015/06/24 职场文书
Python中的tkinter库简单案例详解
2022/01/22 Python
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏