`
bardo
  • 浏览: 378855 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11820
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10127
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9516
社区版块
存档分类
最新评论

PHP中精准快速的UA识别

    博客分类:
  • PHP
阅读更多

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

 

 

 

 

0
1
分享到:
评论

相关推荐

    解析UA(User Agent)字符串的php库.zip

    一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。浏览器的 UA 字串标准格式为: 浏览器标识 (操作系统...

    uaExpert (OPC Ua Client)

    - 开发与调试:软件开发者可以利用uaExpert快速测试自己的OPC UA服务器实现。 5. **操作指南** - 首次使用时,需要配置OPC UA服务器的连接信息,如地址、端口、认证方式等。 - 使用浏览功能查看服务器节点,通过...

    罗兰UA22和UA55驱动.zip

    这个压缩包中的两个文件——"Roland UA22 驱动"和"Roland UA55 驱动"分别对应于两款声卡的驱动程序,用户需要根据自己的设备选择合适的驱动进行安装。 安装驱动程序的过程一般如下: 1. 首先,确保你的计算机已经...

    中文版 OPC UA 规范

    OPC UA 的目标是源源不断地提供已公布的数据,并提供了快速检测到传输过程中的错误和从中恢复的机制。同时,OPC UA 也支持更广泛的服务器,从底层的 PLC 到企业服务器,以不同的服务器可能只实现所有功能中的某些...

    华视CVR-100UA驱动及SDK

    在安装过程中,用户需按照指定步骤操作,确保设备驱动与操作系统版本兼容,避免出现设备无法识别或运行不稳定的情况。 SDK(Software Development Kit),即软件开发工具包,是一组工具、接口文档和示例代码的集合...

    OPC UA LinuxClient - uaExpert-v1.5.1.zip

    它可以帮助工程师快速调试OPC UA服务器,验证设备之间的通信,并进行性能测试。在Linux环境下,UaExpert提供了与Windows版本相同的功能,确保在非Windows系统上的工作流程得以顺畅进行。 总的来说,OPC UA Linux...

    标准OPC_UA客户端软件UaExpert.rar

    3. **现场服务**:技术人员在现场进行设备维护时,可以使用UaExpert快速获取设备状态信息和历史数据。 总结起来,UaExpert是OPC UA生态系统中的重要工具,它提供了一个全面的界面,使用户能够方便地与OPC UA服务器...

    opcua服务器模拟器+opcua客户端工具.rar

    8. **opcua-stack**:OPC UA 实现通常基于 OPC UA Stack,这是一个包含了所有必需协议组件的软件库,使得开发者能够快速构建 OPC UA 应用。 通过这个压缩包,开发者可以使用服务器模拟器创建模拟的 OPC UA 环境,...

    UaExpert-OPC-UA客户端

    OPC-UA是一种开放、安全且基于标准的通信协议,旨在提供设备到设备以及设备到系统的互操作性,尤其在制造业和工业4.0场景中应用广泛。 **OPC-UA简介** OPC-UA是OPC基金会推出的新一代标准,不仅继承了OPC DA(数据...

    OPCUA客户端uaexpert

    open61499是基于IEC61499标准打造的工业编程平台,当前已经实现IEC61499的基础功能块、简单功能块、子应用、复合...uaexpert是用于测试OPCUA服务器的客户端,不需要积分免费下载。可以访问OPCUA服务器的变量、方法。

    UA-.NETStandard-master_opc通用架构代码_opcua_opc_ua_DEMO_

    标签中的“opc通用架构代码”、“opcua”、“opc ua”和“DEMO”进一步强调了这个项目的主要特性:它是OPC UA技术的具体实现,具有可复用的代码结构,特别是对于初学者或者希望快速原型开发的人来说,DEMO是一个很好...

    手机各机型ua

    诺基亚,作为曾经的手机巨头,其设备通常运行Symbian或Windows Phone系统,UA中会包含这些系统的名称。例如,一个诺基亚S60手机的UA可能类似这样:“Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE72-1/021.004; ...

    OPCUA读写结构体示例

    OPCUA( OPC统一架构)是一种开放的标准协议,用于在工业自动化和其他领域中实现设备和系统之间的数据交换。它提供了一种安全、可靠且高效的方式来访问和交换过程控制中的实时和历史数据。在这个示例中,我们将关注...

    UaExpert 1.4.4.zip

    OPC UA(Unified Architecture,统一架构)是一种先进的通信标准...UaExpert作为一款强大的OPC UA工具,是实现这些功能的重要助手,它简化了与OPC UA服务器的交互过程,让开发者和工程师能够快速理解和调试OPC UA系统。

    OPCUA统一架构中文版+UA服务端仿真软件及其使用说明书

    OPC UA(OPC统一架构)是一种开放标准,旨在实现工业自动化系统中的设备间安全、可靠的数据交换。它超越了传统的OPC(OLE for Process Control)标准,提供了一个跨平台、面向服务的架构,支持多厂商环境下的互操作...

    opcua服务器模拟器+opcua客户端工具

    OPC UA(OPC统一架构)是一种开放的标准通信协议,旨在提供工业自动化系统中的设备和服务间的互操作性。它不仅支持数据交换,还允许安全、可靠的信息传输,跨越多个平台和网络。本压缩包包含两个关键组件:一个OPC ...

    博图配置OPC UA.doc

    在博图软件配置OPC UA中,实现西门子1500的OPC UA通信是非常重要的。下面是实现西门子1500的OPC UA通信的步骤: 步骤1:实现S7-1500作为OPC UA服务器的功能 从V2.0开始,S7-1500支持作为OPC UA服务器的功能。在这...

    OPC UaExpert(v1.5)

    对于OPC UA的开发者和系统集成商来说,UaExpert是一个不可或缺的工具,它可以帮助他们快速定位和解决问题,提高自动化系统的性能和可靠性。此外,由于OPC UA的广泛支持,UaExpert也可以应用于各种工业环境,包括制造...

    UaExpert软件通过OPCUA读取西门子S71200数据步骤

    10. 创建OPC UA服务器接口,并将需要通过OPC UA访问的变量拖拽到该接口中。 11. 将PLC程序下载到设备,完成配置。 二、UaExpert客户端设置 1. 首次打开UaExpert,可能需要配置一些安全信息,如证书等,这些信息在...

Global site tag (gtag.js) - Google Analytics