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新手上路(十)
Oct 09 PHP
php运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
php中url函数介绍及使用示例
Feb 13 PHP
php实现图片缩略图的方法
Mar 29 PHP
PHP文件上传操作实例详解
Sep 27 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
Oct 08 PHP
PHP精确计算功能示例
Nov 29 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
JavaScript插件化开发教程(五)
2015/02/01 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
2016/01/22 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
python 把列表转化为字符串的方法
2018/10/23 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
python多线程使用方法实例详解
2019/12/30 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
审计专业自荐信范文
2014/04/21 职场文书
大学生就业自荐书
2014/06/16 职场文书
应届大专生自荐书
2014/06/16 职场文书
党员争先创优承诺书
2015/01/20 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python