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 相关文章推荐
BBS(php &amp; mysql)完整版(八)
Oct 09 PHP
PHP 编程请选择正确的文本编辑软件
Dec 21 PHP
php 生成饼图 三维饼图
Sep 28 PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
php模拟post提交数据的方法
Feb 12 PHP
PHP5.3以上版本安装ZendOptimizer扩展
Mar 27 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 12 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
python 调用有道api接口的方法
2019/01/03 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
计算机专业自荐信
2013/10/14 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
使用python绘制横竖条形图
2022/04/21 Python