解析手机用户代理字符串,好的解决方案还是库?

Dhr*_*hak 7 php user-agent mobile-devices

要求:通过从浏览器解析用户代理字符串来找出用户正在使用的电话.(在PHP中)例如.诺基亚1100,三星D900.

是否有一个很好的图书馆,有足够的电话供应商和模型数据库?

我找到的一些解决方案,需要你的观点:

i)手机检测:https://www.handsetdetection.com - 付费订阅

ii)WURFL - http://wurfl.sourceforge.net/

III)自己的解决方案 -我的手机制造商和型号的小型数据库,但必须添加用户代理字符串量身定制检查我的代码以匹配/模糊对数据库用户代理字符串格式匹配是不能跨厂商一致.

更新:

我们创建了一个量身定制的解决方案,它是正则表达式的混合,可以将标准用户代理(如iOS,Android,Blackberry和WURFL)作为其他手机(如symbian,j2me,bada等)的后备机制.

WURFL加入数据库/缓存(MySQL和memcached的,mongodb的等)codebase.Though你必须更新WURFL手机XML数据库的最新版本/同步WURFL信息每隔几个星期,以便及时了解已经存在为核心设置后的伟大工程随着新发布的手机的规格.

Bjø*_*ger 10

首先,我会说KISS(Keep It Simple,Stupid)这是一个广泛使用的表达式.我首先要仔细检查我的业务需求,看看我真正需要多少设备信息以及我将用它做什么.也许您只需要查看客户端使用的渲染引擎?

其次,您应该考虑解析时间.如果您最终使用ie WURFL并在您的站点上解析该XML,则在检查设备信息时需要解析40万多行XML.当然,您可以将XML放入本地索引数据库,但这也需要一些维护脚本来将更新后的XML中的数据与数据库同步.

第三个(但也许应该是第一个?)正在考虑解决方案的成本/收益.如果您在网站上赚钱,那么对合作伙伴承担一些责任可能是明智之举.像handhelddetection.com这样的托管服务似乎能够以不那么可怕的成本提供高流量.另一个好处是,他们负责维护自己的存储库,如果他们的服务不够好,可能会失去客户.理论上,OpenSource社区可以进行4个月的休假,并且在那段时间内不会维持洗礼(我真的不认为应该担心任何事情;-)

不知道你的确切需求,我会优先考虑这样:

  1. 尽可能使用简单的解决方案,即Detect Mobile Browsers的解决方案
  2. 像WURFL一样去OpenSource.我只是喜欢OpenSource解决方案:-)
  3. 如果您的业务需要保证稳定性和数据质量,您应该让专业人员处理它;-)