您好,欢迎访问一九零五行业门户网

PHP中精准高速的UA识别

php中精准快速的ua识别
ua:user-agent 这在php提供的服务器变量中就能得到。user-agent 识别的目的是什么?
1、是什么浏览器?这已不需要了。css的hack可以帮助你按浏览器正确渲染。
2、浏览器类型:这是肯定要的,我们最想要的,就是了解它是pc机中的,还是手机中的,这样,我们可以选择不同的页面。
3、user-agent:表面上是与 浏览器类型是同一概念,实际是不一样的。user-agent的范围要比浏览器类型更广。因为,来访者不仅有浏览器类,同时还有应用程序,搜索机器人,以及垃圾网站前来抓取信息的。对于垃圾网站前来抓取信息的,当然,很多是伪装的,对付它,那不在ua识别中处理,而是在ip路由中处理的事情了。
mvc模式中的ua路由,最主要是要让客户端请求,最终显示对应的正确的页面。
但php中没有很好的函数,或可扩展,可维护的第三方开源,能够真正快速进行ua识别。
get_browser函数,虽说是c语言级别的,但它的相关的ini文件却要实时下载,并且,好几百k的一个ini大文件,在其中搜索正确的ua,然后,再根据不同的算法算出对应的结果,效率快时,当然好,一旦下载网速不行,或进程太多,机器内存紧长,速度马上直线下降。这不能不说是一个悲剧。
?
最好的做法,是将现在所有的ua字串,完全拆分出来,我们就会发现,一些字串,肯定是robot专有,一些字串,肯定是mobile专有。由此,做成一个csv,那么,现在这样的数据,只是两个字段的不足1000条记录的文件了。于是文件大小也只是降到了20kb以内。要处理的数据缩小了25倍左右。速度比原来的最快速度加快20倍,比原来的最慢速度加快200倍以上了。
?
为什么呢?想想1000条记录,折半查找,需要几次找完?并且,在20kb文本中折半查找不到1000行的记录,肯定远比在400多k的文件当中查找不可折半查找的2万多行的配置记录要快多了。
?
?
?
?
其它类似信息

推荐信息