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 相关文章推荐
一个阿拉伯数字转中文数字的函数
Oct 09 PHP
PHP数组实例总结与说明
Aug 23 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
8个PHP数组面试题
Jun 23 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
php多线程并发实现方法
Sep 30 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
Aug 01 PHP
PHP实现简单用户登录界面
Oct 23 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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中$this-&amp;gt;含义分析
2009/11/29 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
python类定义的讲解
2013/11/01 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
对python 自定义协议的方法详解
2019/02/13 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
python numpy 反转 reverse示例
2019/12/04 Python
python 实现dict转json并保存文件
2019/12/05 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
座谈会主持词
2014/03/20 职场文书
认错检讨书
2014/10/02 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
用JS创建一个录屏功能
2021/11/11 Javascript