客户端 User Agent 解析扩展

1、hisorange/browser-detect

用于识别访客的浏览器详细信息和设备类型, 可识别具体品牌(利用的正则匹配映射),识别信息比 jenssegers 更加全面

参考文档:https://github.com/hisorange/browser-detect

2、jenssegers/agent

支持 Laravel 的 PHP 桌面/移动用户代理解析器,基于 Mobile Detect,具有桌面支持和附加功能。

参考文档: https://github.com/jenssegers/agent

安装

使用 composer 安装:

composer require jenssegers/agent

基础用法

<?php

use Jenssegers\Agent\Agent;

$agent = new Agent();

// 操作系统
$agent->is('Windows');
$agent->is('Firefox');
$agent->is('iPhone');
$agent->is('OS X');

// 厂商产品定位
$agent->isAndroidOS();
$agent->isNexus();
$agent->isSafari();

// 设备类型
$agent->isMobile();
$agent->isTablet();
$agent->isDesktop();

// 语言
$languages = $agent->languages();
// ['nl-nl', 'nl', 'en-us', 'en']

// 是否是机器人
$agent->isRobot();

// 获取设备信息 (iPhone, Nexus, AsusTablet, ...)
$agent->device();

// 系统信息  (Ubuntu, Windows, OS X, ...)
$agent->platform();

// 浏览器信息  (Chrome, IE, Safari, Firefox, ...)
$agent->browser();

// 获取浏览器版本
$browser = $agent->browser();
$version = $agent->version($browser);

// 获取系统版本
$platform = $agent->platform();
$version = $agent->version($platform);

下面是一段微信扫一扫下载 App 的链接的逻辑

$android_download_link = 'http://7xim5a.com2.z0.glb.qiniucdn.com/app.apk';
$weichat_download_link = 'http://a.app.qq.com/o/simple.jsp?pkgname=com.app.indentifior';
$ios_download_link     = 'https://itunes.apple.com/cn/app/kou-yu-jiao-er/app-id*?l=en&mt=8';
$download_link         = '';

// 如果是移动端访问的话 (phones or tablets).
if ( $agent->isMobile() )
{
    if( $agent->isiOS() )
    {
        $download_link = $ios_download_link;
        // 微信访问
        if (strpos($agent->getUserAgent(), 'MicroMessenger') !== false)
        {
            // echo "<h1>微信用户若不能安装, 请点击右上角的跳转按钮, 选择 \"在 Safari 中打开\" 即可正常跳转哦 ^_^ .</h1>";
            // exit;
            $download_link = $weichat_download_link;
        }
    }
    if( $agent->isAndroidOS() )
    {
        $download_link = $android_download_link;
        // 微信访问
        if (strpos($agent->getUserAgent(), 'MicroMessenger') !== false)
        {
            // 使用应用宝可以访问
            $download_link = $weichat_download_link;
        }
    }
}

View

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>处理中... </h1>

    <script type="text/javascript">
        window.onload=function(){
          setTimeout("window.location.href='<?php echo $downloadlink; ?>'",1000);
        }
    </script>

</body>
</html>

引用链接

[1] Mobile Detect: https://github.com/serbanghita/Mobile-Detect