Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP移动浏览器检测?_Php_Mobile_Browser Detection - Fatal编程技术网

PHP移动浏览器检测?

PHP移动浏览器检测?,php,mobile,browser-detection,Php,Mobile,Browser Detection,我需要一种在服务器端检测移动浏览器的方法。我想要一种不需要做什么设置和维护的方式,但仍然可以为我提供(至少)Android、Mobile Safari和Blackberry浏览器的准确检测,以及Opera等替代产品 我希望至少覆盖移动市场的大部分,如果不需要太多,我真的更喜欢几乎所有的市场。这只是阅读标题()并解析/解释以阅读“用户代理”的问题,您可能会找到一个现有的PHP脚本,或者只是简单的正则表达式,这将有助于确定哪些用户代理是移动的,哪些是普通的pc/笔记本电脑 有很多不同的头,因为它表示

我需要一种在服务器端检测移动浏览器的方法。我想要一种不需要做什么设置和维护的方式,但仍然可以为我提供(至少)Android、Mobile Safari和Blackberry浏览器的准确检测,以及Opera等替代产品


我希望至少覆盖移动市场的大部分,如果不需要太多,我真的更喜欢几乎所有的市场。

这只是阅读标题()并解析/解释以阅读“用户代理”的问题,您可能会找到一个现有的PHP脚本,或者只是简单的正则表达式,这将有助于确定哪些用户代理是移动的,哪些是普通的pc/笔记本电脑

有很多不同的头,因为它表示操作系统,所以有很多不同的移动操作系统都会有用户代理头,所以脚本需要有一个所有有效头的列表


WURLF是移动浏览器检测的最终方式,并且可以使用。

(编辑:目前浏览器功能项目已关闭,即atm此答案不是选项)

您所需要的只是一个最新的browscap.ini,它将用户代理字符串映射到浏览器/版本及其功能

您可以从

获得通常非常最新的browscap.ini版本,如何?PHP中的服务器端移动检测。

最近引入了Zend框架


它可以通过Wurfl、TeraWurfl和DeviceAtlas API检测用户代理来确定移动设备及其功能。

不久前发现了此库:

有PHP、Java、JavaScript和C版本。我认为它是一个“轻量级”的智能手机/平板电脑检测工具,没有依赖性,并且定期更新。虽然我对它有复杂的感觉,因为代码质量的某些方面有点不稳定

如果您需要更轻的东西,WordPress的WP Super Cache插件包含一些长的正则表达式字符串,您可以滑动它们


基于用户代理字符串的浏览器嗅探总是不可靠的。我看了一下WURFL,它被压缩了几MB。使用这种方法太过分了。一个更好的方法是检测网站上使用的顶级设备,为这些设备设计,然后结束。我发现这一个非常容易使用。谷歌快速搜索会发现:


不幸的是,WURFL不再免费用于商业项目


但是它有一个缺点。

我曾经用来临时存储访问者的ip地址和csrf会话值(用于计算当前访问者)

我注意到,我有一个附带的好处,那就是能够看到访问者使用的是手机还是电脑:手机的csrf会随着每次新页面的加载而变化,而电脑不会;在这两种情况下,ip地址都保持不变


当然,只有访问者点击两次才能检测到移动设备,我还没有检查它的可靠性(因为我并不真的需要它),但它只是php/服务器端。

“很少维护”将很困难,因为我们唯一的半可靠方式是用户代理字符串,它在新(er)版本中一直在变化。然而,我真的很想知道你预期的“碰撞”是什么?我想是的。但是,哦,哈,这是试图从htc梦中发帖的结果。应该只是“检测”非常类似,它被接受的答案可能只适合你,它基于@Rick下面的建议,虽然它可能需要一些维护嘿,谢谢你的回复,但我确实更想找一个库来避免这种繁琐的工作…你可以只检查变量
$\u SERVER['HTTP\u USER\u AGENT']
+1,让我补充一点,它会随着新设备和设备功能而频繁更新。我只想在这里指出(对于在我之后进入谷歌的任何人来说),Wurfun需要PEAR日志库。幸运的是,PHP库的更新频率似乎不如Java库。我刚刚下载了它,它错误地将android上的chrome识别为桌面。我将寻找一个不同的libWURFL,它不再免费用于商业用途。他们在使用他们的服务时每年收取淫秽的费用。它定期更新,使用简单,而且由BrowserStack赞助——看起来像一个像样的图书馆。@tonyhb。。。当你说它定期更新时,我不明白它是如何更新的,因为我把它(Mobile_Detect.php文件)下载到了我的计算机上。你的意思是我需要定期返回下载站点检查更新版本吗?是的,你需要定期重新下载文件以确保你是最新的。