0

手册中,我正在运行一个简单的代码来使用get_browser()方法获取浏览器信息。

手册中的代码 -

code_in_manuals

我正在运行的代码(几乎相同/我尝试删除echo "<pre>";但没有效果) -

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
echo "<pre>";
print_r($browser);
?>

这是error/illegal characters我得到的browser_name_regex-

获取浏览器错误

我还尝试了这种 UTF 8 字符编码,但问题仍然存在。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test browser</title>
</head>

<body>
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
echo "<pre>";
print_r($browser);
?>
</body>
</html>

让我知道我做错了什么以及在哪里寻找解决方案?

还有一件事要问,在同一个文档中-

尝试通过在 browscap.ini 文件中查找浏览器信息来确定用户浏览器的功能。

browscap.ini我在我正在使用的系统中哪里可以找到它Windows 7......虽然我不太确定它是否与这个问题有关。

4

2 回答 2

0

在PHP - get_browser() 结果中提出了相同的问题

根据那里的信息和在https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612364找到的信息,它更彻底地解释了这个错误,我创建了一些代码行来解决这个问题.

我已经在这里和那里发布了我的答案。

代码:

if (function_exists('get_browser') && ini_get('browscap')) {
    $browser_info = get_browser(null, true);
    if (function_exists('mb_convert_encoding')) $browser_info['browser_name_regex'] = mb_convert_encoding($browser_info['browser_name_regex'], "UTF-8", "ISO-8859-1");
    print_r($browser_info);
}
于 2014-03-08T23:53:19.723 回答
0

正如您所说,您在给定路径中找到了 browscap.in 文件,然后C:\xampp\php\extras\browscap.ini在 php.ini 文件中指定该绝对路径,例如

我在我的本地设置(php.ini)中,实际上我已经从其他函数生成了browscap文件,然后将其粘贴到文件中,然后找到了正确的输出。

[browscap]
;browscap = extra/browscap.ini
browscap = D:\ZendServer\etc\browscap.ini

你可以指定你的绝对路径,比如

[browscap]
;browscap = extra/browscap.ini
browscap = C:\xampp\php\extras\browscap.ini

和要检查的代码

echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
echo "<pre>";print_r($browser);die;
于 2013-05-10T05:35:12.367 回答