php检测useragent版本示例_php实例

复制代码 代码如下:

<?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);

时间: 2024-08-02 22:35:48

php检测useragent版本示例_php实例的相关文章

php检测useragent版本示例

 这篇文章主要介绍了php检测useragent版本的示例,需要的朋友可以参考下    代码如下: <?php define('IE', 1); define('FIREFOX', 2); define('CHROME', 3); define('OPERA', 4); class UserAgentDetect {     static $version = array();       static $userAgent = '';       static function getUser

php检测文件编码的方法示例_php实例

关于文件编码的检测,百度一下一大把都是,但是确实没有能用的.很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出.看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱.最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数,还包括自动检测编码并按指点编码读取文件的函数.源码献上. 复制代码 代码如下: <?php /*** 检测文件编码 * @param string $file 文件路径*

php车辆违章查询数据示例_php实例

方便有车一族随时了解自己是否有过交通违章,避免因遗忘或逾期处理违章罚单而造成的不必要损失.本代码示例是基于聚合数据全国车辆违章查询API的调用,有需要的可以往下看. 使用前你需要: 通过:https://www.juhe.cn/docs/api/id/36申请一个违章查询的appkey 一.引入封装好的请求类class.juhe.wz.php header('Content-type:text/html;charset=utf-8'); include 'class.juhe.wz.php';

PHP模板引擎Smarty中变量的使用方法示例_php实例

本文实例讲述了PHP模板引擎Smarty中变量的使用方法.分享给大家供大家参考,具体如下: 一.概述: Smarty 是 PHP 众多模板引擎中的一个,它是根据 PHP 编写的一个类库. Smarty 的优点: 1.优化网站访问速度: 2.网页前端设计和程序的分离: 二.Smarty 的安装 1.需要到 Smarty 的官方网站 http://www.smarty.net/download.php 下载最新的 Smarty 版本,比如下载的版本为:Smarty-2.6.18.tar.tar: 2

使用PHP进行微信公众平台开发的示例_php实例

1. SAE 数据库的连接. 需要主机名和端口,以后的使用是一样的. @ $db = new mysqli(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS,'你的应用名'); 2.XML 的处理. 微信发送的消息格式都是 XML 格式,你返回的消息也必须是 XML 格式.从 XML 里提取数据,用 SimpleXML,强大又容易使用.包装成 XML 消息呢?把消息模板保存为字符串,然后用 sprintf 进行格式

PHP内存缓存功能memcached示例_php实例

下文简单介绍了memcached类的应用示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 一.memcached 简介 在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东.这里简单介绍一下,memcached 是高效.快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序. 二.memcached 安装 首先是下载 memcached 了,目前最新版本是 1.1.12,直接从官方网站即可下载到 memc

PHP上传Excel文件导入数据到MySQL数据库示例_php实例

最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开发框架.可在ThinkPHP官网下载. PHPExcel:Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可在CodePlex官网下载.. 1.设计MySQL数据库product 创建product数据库 CREATE DATABASE product D

PHP中模拟链表和链表的基本操作示例_php实例

模拟链表: <?php /** * PHP实现链表的基本操作 */ class linkList { /** * 姓名 * @var string */ public $name = ''; /** * 编号 * @var int */ public $id = 0; /* * 引用下一个对象 */ public $next = null; /** * 构造函数初始化数据 * @param int $id * @param string $name */ public function __co

Laravel5.1自定义500错误页面示例_php实例

本文实例讲述了Laravel5.1自定义500错误页面的方法.分享给大家供大家参考,具体如下: Laravel 5.1中500错误是程序错误,程序错误一定是系统自带的500错误,可以通过以下步骤简单实现自定义500错误页面. 编辑PHP文件app/Exceptions/Handler.php内容如下: public function render($request, Exception $e) { if ($e instanceof ModelNotFoundException) { $e =