我们正在寻找一种方法来确定用户是否正在使用移动浏览器。我们需要在PHP中通过解析用户代理字符串来做到这一点。我知道这种方法有很多注意事项,但我们真的需要这样做。
你有什么建议吗?一个好的(即使不是完美的)更新的代码?
我知道WURFL,我相信它很棒,但它不再免费用于非开源项目。通过谷歌搜索,我还找到了这个代码:http://mobiforge.com/developing/story/lightweight-device-detection-php (和一些变体),但我不确定它。看起来它写得很糟糕(例如,当他们使用$mobile_browser = '0‘并用引号括起一个整数时...)。
你能推荐些什么吗?
谢谢,
Alessandro
发布于 2011-07-11 05:47:14
我使用的是这个:
$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和安卓平板电脑不会被归类为“移动设备”,因为它们的屏幕尺寸更大。
如果您还想捕获平板电脑,您可以使用以下命令:
$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'] );
发布于 2011-07-10 01:36:07
您可以使用PHP的内置函数get_browser()
。根据PHP手册,输出数组有platform
字段,你可以用它来检测移动浏览器。
还有一个Mobiforge的lightweight mobile device detection代码。
发布于 2011-07-11 05:21:49
如果您不需要高级功能检测,您可以使用此resource。我认为新的WURFL apis是AGPL,所以它们是免费的。无论如何,你可以使用旧版本,不是吗?
https://stackoverflow.com/questions/6636306
复制相似问题