PHP get_browser在WAMP和Linux服务器上返回不同的结果

时间:2012-02-05 16:22:04

标签: php

在PHP中使用get_browser函数时:

  • Linux服务器 - 效果很好。
  • WAMP服务器 - 返回“默认浏览器”

我刚刚下载了最新的browscap.in文件。

我的user_agent是:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1

WAMP:

Array
(
    [browser_name_regex] => §^.*$§
    [browser_name_pattern] => *
    [browser] => Default Browser
    [version] => 0
    [majorver] => 0
    [minorver] => 0
    [platform] => unknown
    [alpha] => 
    [beta] => 
    [win16] => 
    [win32] => 
    [win64] => 
    [frames] => 
    [iframes] => 
    [tables] => 
    [cookies] => 
    [backgroundsounds] => 
    [javascript] => 
    [vbscript] => 
    [javaapplets] => 
    [activexcontrols] => 
    [isbanned] => 
    [ismobiledevice] => 
    [issyndicationreader] => 
    [crawler] => 
    [cssversion] => 0
    [aolversion] => 0
)

服务器:

Array
(
    [browser_name_regex] => �^mozilla/5\.0 \(.*windows nt 6\.1.*wow64.*rv:.*\) gecko/.* firefox/9\..*$�
    [browser_name_pattern] => Mozilla/5.0 (*Windows NT 6.1*WOW64*rv:*) Gecko/* Firefox/9.*
    [parent] => Firefox 9.0
    [platform] => Win7
    [win32] => 
    [win64] => 1
    [browser] => Firefox
    [version] => 9.0
    [majorver] => 9
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [javascript] => 1
    [javaapplets] => 1
    [cssversion] => 3
    [minorver] => 0
    [alpha] => 
    [beta] => 
    [win16] => 
    [backgroundsounds] => 
    [vbscript] => 
    [activexcontrols] => 
    [isbanned] => 
    [ismobiledevice] => 
    [issyndicationreader] => 
    [crawler] => 
    [aolversion] => 0
)

问题:我如何解决WAMP中的这个问题,以便它像linux服务器一样行为?

2 个答案:

答案 0 :(得分:1)

似乎您的php.ini文件未包含browscap ini文件的路径。

看看是否存在此设置:

[browscap]
browscap = /path/to/your/php_browscap.ini

答案 1 :(得分:1)

我建议使用这个“php的原生get_browser()函数的独立替换” https://github.com/garetjax/phpbrowscap

建议在Browsercap page

中使用此库

以下是功能列表:

  • 快速
  • 独立
  • 解析许多用户代理的速度更快
  • 完全兼容get_browser()
  • 通常比get_browser()
  • 更快,更准确
  • 完全独立于PHP配置
  • 用户代理自动检测
  • 返回对象或数组
  • 将解析后的.ini文件直接缓存到PHP数组中
  • 接受任何.ini文件(甚至ASP和精简版)
  • 通过版本检查从远程服务器自动更新browscap.ini文件和缓存
  • 可配置的远程更新服务器
  • 完全可配置(自0.2起)
  • PHP4和PHP5兼容(不推荐使用PHP4版本)
  • 根据MIT许可证发布