PHP实现的浏览器检查类


Posted in PHP onApril 11, 2016

本文实例讲述了PHP实现的浏览器检查类。分享给大家供大家参考,具体如下:

<?php
//原作者:epsilon7
//SonyMusic([email]sonymusic@163.net[/email])
class BrowserDetector {
 var $UA = "";  //$HTTP_USER_AGENT的内容
 var $BROWSER= "Unknown";  //浏览器类型
 var $PLATFORM  = "Unknown";  //操作系统
 var $VERSION= "";  //浏览器版本号
 var $MAJORVER  = "";  //浏览器主版本号
 var $MINORVER  = "";  //浏览器副版本号
 /* 构造函数开始 */
 function BrowserDetector(){
  $this->UA  = getenv(HTTP_USER_AGENT);
  $preparens = "";
  $parens = "";
  $i = strpos($this->UA,"(");
  if ($i >= 0)  {
    $preparens = trim(substr($this->UA,0,$i));
    $parens = substr($this->UA,$i+1,strlen($this->UA));
    $j = strpos($parens,")");
    if($j>=0) {
     $parens = substr($parens,0,$j);
    }
  }
  else  {
    $preparens = $this->UA;
  }
  $browVer = $preparens;
  $token = trim(strtok($parens,";"));
  while($token)  {
    if($token=="compatible") {
    }
    elseif(preg_match("/MSIE/i","$token")) {
     $browVer = $token;
    }
    elseif(preg_match("/Opera/i","$token")) {
     $browVer = $token;
    }
    elseif(preg_match("/X11/i","$token") || preg_match("/SunOS/i","$token") || preg_match ("/Linux/i","$token")) {
     $this->PLATFORM  = "Unix";
    }
    elseif(preg_match("/Win/i","$token")) {
     $this->PLATFORM  = $token;
    }
    elseif(preg_match("/Mac/i","$token") || preg_match("/PPC/i","$token")) {
     $this->PLATFORM  = $token;
    }
    $token = strtok(";");
  }
  $msieIndex = strpos($browVer,"MSIE");
  if($msieIndex >= 0)  {
    $browVer = substr($browVer,$msieIndex,strlen($browVer));
  }
  $leftover  = "";
  if(substr($browVer,0,strlen("Mozilla")) == "Mozilla")  {
    $this->BROWSER = "Netscape";
    $leftover=substr($browVer,strlen("Mozilla")+1,strlen($browVer));
  }
  elseif(substr($browVer,0,strlen("Lynx")) == "Lynx")  {
    $this->BROWSER = "Lynx";
    $leftover=substr($browVer,strlen("Lynx")+1,strlen($browVer));
  }
  elseif(substr($browVer,0,strlen("MSIE")) == "MSIE") {
    $this->BROWSER = "IE";
    $leftover=substr($browVer,strlen("MSIE")+1,strlen($browVer));
  }
  elseif(substr($browVer,0,strlen("Microsoft Internet Explorer")) == "Microsoft Internet Explorer")  {
    $this->BROWSER = "IE";
    $leftover=substr($browVer,strlen("Microsoft Internet Explorer")+1,strlen($browVer));
  }
  elseif(substr($browVer,0,strlen("Opera")) == "Opera")  {
    $this->BROWSER = "Opera";
    $leftover=substr($browVer,strlen("Opera")+1,strlen($browVer));
  }
  $leftover = trim($leftover);
  $i=strpos($leftover," ");
  if($i > 0)  {
    $this->VERSION = substr($leftover,0,$i);
  }
  else  {
    $this->VERSION = $leftover;
  }
  $j = strpos($this->VERSION,".");
  if($j >= 0)  {
    $this->MAJORVER = substr($this->VERSION,0,$j);
    $this->MINORVER = substr($this->VERSION,$j+1,strlen($this->VERSION));
  }
  else  {
    $this->MAJORVER = $this->VERSION;
  }
 }
}
//测试程序开始
$test=new browserdetector;
echo $test->UA."<br>";
echo $test->BROWSER."<br>";
echo $test->PLATFORM."<br>";
echo $test->VERSION."<br>";
echo $test->MAJORVER."<br>";
echo $test->MINORVER."<br>";
?>

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

PHP 相关文章推荐
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
深入解析PHP底层机制及相关原理
Dec 11 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
Apr 11 #PHP
PHP模板引擎Smarty内建函数详解
Apr 11 #PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 #PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 #PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 #PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 #PHP
PHP模板引擎Smarty中的保留变量用法分析
Apr 11 #PHP
You might like
数字转英文
2006/12/06 PHP
php 获取远程网页内容的函数
2009/09/08 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
python基础教程之常用运算符
2014/08/29 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
Python中collections模块的基本使用教程
2018/12/07 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
运动会广播稿150字
2014/02/19 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android