移动浏览器检测?

Ita*_*Ale 17 php mobile user-agent browser-detection

我们正在寻找一种方法来确定用户是否使用移动浏览器.我们需要通过解析用户代理字符串在PHP中执行此操作.我知道这种方法有很多注意事项,但我们确实需要这样做.

你有什么建议吗?一个好的(即使不是完美的)更新代码?

我知道WURFL,我相信它很棒,但它不能免费用于非开源项目.通过谷歌搜索,我也发现了这个代码:http://mobiforge.com/developing/story/lightweight-device-detection-php(以及一些变体),但我不确定.看起来它写得非常糟糕(例如,看看,当他们使用$ mobile_browser ='0'时,引号围绕整数...).

你能推荐什么吗?

谢谢,

亚历山德罗

Flo*_*ern 31

我正在使用这个:

$isMobile = (bool)preg_match('#\b(ip(hone|od)|android\b.+\bmobile|opera m(ob|in)i|windows (phone|ce)|blackberry'.
                    '|s(ymbian|eries60|amsung)|p(alm|rofile/midp|laystation portable)|nokia|fennec|htc[\-_]'.
                    '|up\.browser|[1-4][0-9]{2}x[1-4][0-9]{2})\b#i', $_SERVER['HTTP_USER_AGENT'] );
Run Code Online (Sandbox Code Playgroud)

它很短,可以检测大多数移动用户(或者更确切地说是智能手机).iPad和Android平板电脑不会被归类为"移动",因为它们的屏幕尺寸更大.

如果你想捕获平板电脑,你可以使用这个:

$isMobile = (bool)preg_match('#\b(ip(hone|od|ad)|android|opera m(ob|in)i|windows (phone|ce)|blackberry|tablet'.
                    '|s(ymbian|eries60|amsung)|p(laybook|alm|rofile/midp|laystation portable)|nokia|fennec|htc[\-_]'.
                    '|mobile|up\.browser|[1-4][0-9]{2}x[1-4][0-9]{2})\b#i', $_SERVER['HTTP_USER_AGENT'] );
Run Code Online (Sandbox Code Playgroud)


Șer*_*iță 12

我正在使用Mobile_Detect类.它几乎每周更新一次.代码在HTTP标头和User-Agent字符串中查找"移动"设备的标志.

演示 ←从您的移动设备运行

您可能只会使用:

include("Mobile_Detect.php");
$detect = new Mobile_Detect();
if ($detect->isMobile()) {
    // any mobile platform
}
Run Code Online (Sandbox Code Playgroud)

该课程还尝试通过以下方式检测平板设备:

if($detect->isTablet()){
    // any tablet
}
Run Code Online (Sandbox Code Playgroud)

检测移动设备没有灵丹妙药,但在决定使用外部API(如WURLF,DeviceAtlas等)之前,这是一个良好的开端.