4

我想使用:

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,它只给我一些“§^.*$§”作为找到的名称?这不可能是真的......这里有什么问题?

4

6 回答 6

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

不要使用$_SERVER['HTTP_USER_AGENT']. get_browser 函数会默认返回浏览器的信息。

试试上面的代码。

于 2013-05-02T11:45:48.280 回答
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.
于 2013-05-02T12:06:48.027 回答
0

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

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

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

浏览器.ini

下载,并添加到路径

于 2013-05-02T12:14:08.957 回答
0

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

于 2013-05-02T11:34:14.170 回答
0

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

于 2013-05-02T11:34:31.307 回答
0

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

  1. 从Browscap下载最新文件full_php_browser.ini(38 MB) 。
  2. 然后把名字browscap.ini改成C:\xampp\php\extras\.
  3. 打开php.ini并添加这个 -

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

它肯定会奏效。

于 2015-12-31T12:35:54.993 回答