PHP get_browser()返回奇怪的值

时间:2013-05-02 11:28:54

标签: php browser

我想用:

public function BrowserCheck() {
        static $Browser;
        if(!isset($Browser)){
            $Browser = get_browser($_SERVER['HTTP_USER_AGENT'],true);
        }
        return $Browser;
}

http://de3.php.net/manual/de/function.get-browser.php上建议,但不知何故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,它只给了我一些“§^。* $§”作为找到的名字?这不可能是真的......这里有什么问题?

6 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你忘了:http://tempdownloads.browserscap.com/ - 下载PHP版本!并从php_browscap.ini重命名为browscap.ini

答案 2 :(得分:0)

public function BrowserCheck() {
        static $Browser;
        if(!isset($Browser)){
            $Browser = $browser = get_browser(null, true);
        }
        return $Browser;
}

请勿使用$_SERVER['HTTP_USER_AGENT']。 get_browser函数默认返回浏览器的信息。

试试上面的代码。

答案 3 :(得分:0)

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.

答案 4 :(得分:0)

检查你的php.ini中是否启用了browscap,如果没有启用它并重启appache

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

如果它已经存在,请检查位置中是否存在“browscap.ini”,如果它不存在

browscap.ini

下载,并添加到路径

答案 5 :(得分:0)

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

  1. Browscap
  2. 下载最新文件full_php_browser.ini(38 MB)
  3. 然后将名称更改为browscap.ini并将其放入C:\xampp\php\extras\
  4. 打开php.ini并添加 -

    [browscap]
    ;http://php.net/browscap
    browscap = "C:\xampp\php\extras\browscap.ini"
    
  5. 它肯定会奏效。