当前位置:首页 > 开发 > 编程语言 > PHP > 正文

PHP中精准快速的UA识别

发表于: 2011-01-28   作者:bardo   来源:转载   浏览次数:
摘要: UA:user-agent 这在PHP提供的服务器变量中就能得到。user-agent 识别的目的是什么? 1、是什么浏览器?这已不需要了。CSS的HACK可以帮助你按浏览器正确渲染。 2、浏览器类型:这是肯定要的,我们最想要的,就是了解它是PC机中的,还是手机中的,这样,我们可以选择不同的页面。 3、user-agent:表面上是与 浏览器类型是同一概念,实际是不一样的。user-agen

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万多行的配置记录要快多了。

 

 

 

 

PHP中精准快速的UA识别

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
用户代理识别——wiki中的解释 当一个软件代理运行于一个网络协议时,它通常通过向它的 operating p
IE User-Agent是如何生成的 http://tieba.baidu.com/f?kz=192127084 以Win XP/IE6为例,根据我的理
安装Hprose for PHP Hprose for PHP对硬件和操作系统需求如下: 客户端需求 安装有5.0或更高版本PHP
首先推荐几篇有关验证码识别的文章,觉得不错 php实现验证码的识别(初级篇) 关于bp神经网格识别验证
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的
本文中,我们通过Procrustes analysis来处理特征点,Procrustes analysis算法可以参考:http://en.w
在一生中,我们会在恋爱时遇到很多不同性格的人。一个破坏性的伴侣会伤害我们,伤害我们所爱的人,
搜索词条:FreeBSD-10.0-RELEASE-i386-disc1.iso 百度云 谷歌、百度、搜狗对比: 百度连自家网盘的
eclipse 快速建立PHP调试环境 在网上看了许多关于eclipse 建立PHP调试环境的文章,自己去尝试了一翻,
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号