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 相关文章推荐
pw的一个放后门的方法分析
Oct 08 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
php之XML转数组函数的详解
Jun 07 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
Linux系统下安装PHP7.3版本
Jun 26 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
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
php常用数学函数汇总
2014/11/21 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Python2.7 实现引入自己写的类方法
2018/04/29 Python
如何理解python中数字列表
2020/05/29 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
学习Python爬虫的几点建议
2020/08/05 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
优秀的教师个人的中文求职信
2013/09/21 职场文书
工商管理专业学生的自我评价
2013/10/01 职场文书
搞笑创意广告语
2014/03/17 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
教师见习报告范文
2014/11/03 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android