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中使用sockets:从新闻组中获取文章
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
php的慢速日志引起的Mysql错误问题分析
May 13 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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如何透过ODBC来存取数据库
2006/10/09 PHP
php构造函数实例讲解
2013/11/13 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
浅谈php://filter的妙用
2019/03/05 PHP
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
js实现简单的秒表
2020/01/16 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
python读文件的步骤
2019/10/08 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
庆中秋节主题活动方案
2014/02/03 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
分享几种python 变量合并方法
2022/03/20 Python
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS