移动浏览器检测?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

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

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

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

你能推荐一些东西吗?

提问于
用户回答回答于

我正在使用这一个:

$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'] );

它很短,并且能够检测到大多数移动用户(或者说智能手机)。iPad和Android平板电脑将不会被归类为“mobile”,因为它们的屏幕尺寸较大。

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

$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'] );
用户回答回答于

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

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

您可能只会使用:

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

该班还尝试通过以下方式检测平板电脑设备:

if($detect->isTablet()){
    // any tablet
}

在检测移动设备方面没有银弹,但在决定使用外部API(如WURLF,DeviceAtlas或其他)之前,这是一个好的开始。

扫码关注云+社区

领取腾讯云代金券