它没有工作。我的意思是我有很多脚本来获取ip和os但是无论如何get_browser是内部函数,应该可以工作,但不是。当我尝试在我得到的函数上获得print_r时。
Array ( [browser_name_regex] => §^.*$§ [browser_name_pattern] => * [browser] => Default Browser [version] => 0 [majorver] => 0 [minorver] => 0 [platform] => unknown [alpha] => [beta] => [win16] => [win32] => [win64] => [frames] => 1 [iframes] => [tables] => 1 [cookies] => [backgroundsounds] => [cdf] => [vbscript] => [javaapplets] => [javascript] => [activexcontrols] => [isbanned] => [ismobiledevice] => [issyndicationreader] => [crawler] => [cssversion] => 0 [supportscss] => [aol] => [aolversion] => 0 )
我正在使用win7和firefox。 我有最新的browcap并在php.ini.without中设置,当idont获得一个时,php返回错误。
答案 0 :(得分:15)
我听说很多人抱怨这个功能在他们的网站上不起作用。如果您仔细查看手册,您会发现以下通知:
您需要做的第一件事是检查您的系统是否安装了browscap.ini,如果没有,您可以自行完成。调用phpinfo()函数。这有助于您收集有关系统的一些信息:
如果未安装browscap,请查找配置文件(php.ini)路径。这是您的PHP配置文件所在的位置并启用browscap设置。完成后,它应如下所示:
[browscap]
browscap =“D:\ xampp \ php \ extras \ browscap.ini”
重启你的apache尝试下面的代码
$ browser = get_browser(null,true);
的print_r($浏览器);
如果您的get_browser()仍无法正常运行,则可能是您的browscap.ini文件存在问题。您可以从https://browsers.garykeith.com/downloads下载更新的browscap.ini文件,并替换您的browscap.ini将位于/php/extras/browscap.ini
完成后,再次重启apache并执行代码。
答案 1 :(得分:9)
确保您拥有最新的browscap文件。阅读get_browser文档中的注释。
如果您不是服务器管理员,请查看phpbrowcap,它实现了相同的功能,但您可以使用另一个broswcap文件而不是服务器范围的文件。
答案 2 :(得分:6)
来自php.net:
注意:为了实现这一点,您的 browscap配置设置 php.ini必须指向正确的 browscap.ini文件的位置 你的系统。 browscap.ini不是 捆绑了PHP,但你可能会发现 最新»php_browscap.ini文件 这里。而browscap.ini包含 关于许多浏览器的信息,它 依靠用户更新来保持 数据库当前。格式 文件是相当不言自明的。
听起来像你的browscap.ini不是最新的。
答案 3 :(得分:1)
我浪费了很多时间来学习如何使用那个功能,
虽然我终于明白男人永远不应该使用这个功能,但它会扼杀你的表现!!!
尝试使用/不使用get_browser来检查结果。
ab -c 100 -n 100 http://yourserver/
使用preg_match_all('/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i', $_SERVER['HTTP_USER_AGENT'])
代替