php检测useragent版本示例


Posted in PHP onMarch 24, 2014
<?php
define('IE', 1);
define('FIREFOX', 2);
define('CHROME', 3);
define('OPERA', 4);
class UserAgentDetect
{
    static $version = array();
    static $userAgent = '';
    static function getUserAgent()
    {
        $header = getallheaders();
        self :: $userAgent = $header['User-Agent'];
    } 
  function findUserAgentByKey($ua, $key)
    {
        $len = strlen($key);
        $start = strpos($ua, $key);
        $pos = strpos($ua, ' ', $start + $len + 1);
        return substr($ua, $start + $len, $pos - $len - $start);
    } 
    static function detectUserAgent()
    {
         self :: getUserAgent();
        if (strpos(self :: $userAgent, 'MSIE') != null)
        {
            self :: $version[] = IE;
            self :: $version[] =self:: findUserAgentByKey(self :: $userAgent, 'MSIE');
        } 
        else if (strpos(self :: $userAgent, 'Gecko/') != null)
        {
            self :: $version[] = FIREFOX;
            self :: $version[] =self::  findUserAgentByKey(self :: $userAgent, 'Firefox/');
        } 
        else if (strpos(self :: $userAgent, 'AppleWebKit/') != null)
        {
            self :: $version[] = CHROME;
            self :: $version[] = self:: findUserAgentByKey(self :: $userAgent, 'Chrome/');
        } 
        else if (strpos(self :: $userAgent, 'Presto/') != null)
        {
            self :: $version[] = OPERA;
            self :: $version[] = self:: findUserAgentByKey(self :: $userAgent, 'Opera/');
        } 
        else
        {
        } 
        return self :: $version;
    } 

    function matchUserAgent($ua, $key)
    {
        preg_match("/$key.([^\s]*?)\s/", $ua, $out);
        return $out[1];
    } 
} 
$ua=UserAgentDetect::detectUserAgent();
print_r($ua);
PHP 相关文章推荐
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
php中数字0和空值的区别分析
Jun 05 PHP
yii操作session实例简介
Jul 31 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
php二维码生成以及下载实现
Sep 28 PHP
PHP生成随机数的方法总结
Mar 01 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
php断点续传之如何分割合并文件
Mar 22 #PHP
php 邮件发送问题解决
Mar 22 #PHP
php数组合并的二种方法
Mar 21 #PHP
php数组删除元素示例
Mar 21 #PHP
php动态生成函数示例
Mar 21 #PHP
xss防御之php利用httponly防xss攻击
Mar 21 #PHP
php5.3 goto函数介绍和示例
Mar 21 #PHP
You might like
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
计算机专业毕业生的自我评价
2013/11/18 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
解决golang结构体tag编译错误的问题
2021/05/02 Golang