PHP get_browser()返回奇怪的值

PHP get_browser()返回奇怪的值,php,browser,Php,Browser,我想使用: public function BrowserCheck() { static $Browser; if(!isset($Browser)){ $Browser = get_browser($_SERVER['HTTP_USER_AGENT'],true); } return $Browser; } 如上所述,但不知何故,var_dump($Result);将只输出奇怪的值: array(30)

我想使用:

public function BrowserCheck() {
        static $Browser;
        if(!isset($Browser)){
            $Browser = get_browser($_SERVER['HTTP_USER_AGENT'],true);
        }
        return $Browser;
}
如上所述,但不知何故,var_dump($Result);将只输出奇怪的值:

array(30) {
["browser_name_regex"]=>
string(6) "§^.*$§"
["browser_name_pattern"]=>
string(1) "*"
["browser"]=>
string(15) "Default Browser"
["version"]=>
string(1) "0"
["majorver"]=>
string(1) "0"
["minorver"]=>
string(1) "0"
["platform"]=>
string(7) "unknown"
["alpha"]=>
string(0) ""
["beta"]=>
string(0) ""
["win16"]=>
string(0) ""
["win32"]=>
string(0) ""
["win64"]=>
string(0) ""
["frames"]=>
string(1) "1"
["iframes"]=>
string(0) ""
["tables"]=>
string(1) "1"
["cookies"]=>
string(0) ""
["backgroundsounds"]=>
string(0) ""
["cdf"]=>
string(0) ""
["vbscript"]=>
string(0) ""
["javaapplets"]=>
string(0) ""
["javascript"]=>
string(0) ""
["activexcontrols"]=>
string(0) ""
["isbanned"]=>
string(0) ""
["ismobiledevice"]=>
string(0) ""
["issyndicationreader"]=>
string(0) ""
["crawler"]=>
string(0) ""
["cssversion"]=>
string(1) "0"
["supportscss"]=>
string(0) ""
["aol"]=>
string(0) ""
["aolversion"]=>
string(1) "0"
}

为什么??我正在使用Chrome,它只返回一些“§^.*$§”作为查找到的名称?那不可能是真的。。。这里有什么问题?

此函数使用来自browscap.ini文件的信息。这可能不是最好的解决方案,因为文件不能始终保持最新。尝试只获取用户代理并通过正则表达式确定名称。

您忘记了:--下载PHP版本!并将php_browscap.ini重命名为browscap.ini

public function BrowserCheck() {
        static $Browser;
        if(!isset($Browser)){
            $Browser = $browser = get_browser(null, true);
        }
        return $Browser;
}
不要使用
$\u服务器['HTTP\u用户\u代理]
。get_browser函数默认返回浏览器信息


尝试上面的代码。

检查php.ini中是否启用了browscap,如果未启用,请重新启动appache

public function BrowserCheck() {
        static $Browser;
        if(!isset($Browser)){
            //You can bypass $_SERVER['HTTP_USER_AGENT'] parameter with a NULL value. 
            //you will get right result.  
            $Browser = $browser = get_browser(null, true);
        }
        return $Browser;
}

Try this code.
 [browscap]
 ; http://php.net/browscap
 browscap = "C:\xampp\php\extras\browscap.ini"
如果已经存在,请检查位置中是否存在“browscap.ini”,如果不存在


下载并添加到路径

我遇到了类似的问题,如果您在Windows上使用Xampp或Wamp服务器,那么这就是解决方案

  • 从下载最新文件
    full\u php\u browser.ini
    (38 MB)
  • 然后将名称更改为
    browscap.ini
    ,并将其放入
    C:\xampp\php\extras\
  • 打开
    php.ini
    并添加-

    [browscap]
    ;http://php.net/browscap
    browscap = "C:\xampp\php\extras\browscap.ini"
    

  • 它肯定会起作用。

    什么是
    $Result
    ?上面的代码中没有提到,您是否阅读了底部的browscap注释:browscap ini设置需要一个源来识别浏览器;没有它,就不能保证浏览器会被识别。另请参阅相关问题和答案:另外,请注意
    get\u browser()
    取决于格式良好的用户代理。试着打印出来看看你的服务器是否正确地报告了它。在你的php中启用browscap。iniI已经这样做了。。。即使是最新的browscap.ini也没有给我任何其他结果。