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 相关文章推荐
PHP4在Windows2000下的安装
Oct 09 PHP
认识并使用PHP超级全局变量
Jan 26 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
php绘制一个扇形的方法
Jan 24 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
wampserver改变默认网站目录的办法
Aug 05 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 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
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
this[] 指的是什么内容 讨论
2007/03/24 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
Python压缩和解压缩zip文件
2015/02/14 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
一张图带我们入门Python基础教程
2017/02/05 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
免税水晶:Duty Free Crystal
2019/05/13 全球购物
电子商务优秀毕业生求职信
2014/07/11 职场文书
普通话演讲稿
2014/09/03 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
公司董事任命书
2015/09/21 职场文书
校园安全教育心得体会
2016/01/15 职场文书