在使用浏览器发起的 HTTP 请求中,通常会包含一个识别标识。它名为 User Agent,简称 UA。它是一串包含了客户端基础信息的字符串。通过它可以方便的获取客户端的操作系统,语言,浏览器和版本信息。
在 PHP 中查看客户端 UA 标识的方式是读取系统常量 $_SERVER
中的 HTTP_USER_AGENT
选项:
<?php
echo $_SERVER['HTTP_USER_AGENT'];
以上代码在我的浏览器中会输出下面的字符串:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
通过分析上面的字符串,可以很容易的获取到我所使用的操作系统和浏览器信息。在一些统计网站中,记录访客操作系统和浏览器的功能正是通过分析 UA 的字符串来实现的。只要能收集市面上所有的操作系统和浏览器信息,就可以实现精准的客户端设备判断。但面对如今众多的电脑和手机,对于个人来说,实现起来还是不太容易。不过开源的世界总有惊喜,Mobile Detect 就是一个轻量级的 UA 设备检测类。它倾向于移动端的 UA 解析。使用它可以轻松获取客户端所使用的移动设备信息。比如判断当前访问是不是来自于移动设备:
<?php
$detect = new Mobile_Detect;
$detect->isMobile();
或者判断是不是来自与 iPhone 手机:
<?php
$detect = new Mobile_Detect;
$detect->isIphone();
如果想在 Laravel 中使用它,可以尝试一下 jenssegers/agent。这是一个 基于 Mobile Detect 的 Laravel 插件。只需要在 Laravel 中加载它提供的 Service Provider 就可以使用了。