0

我目前正在玩浏览器检测,主要是为了网站的统计数据和将来更好地设计网站。没有人告诉我最好的解决方法是使用以下代码,如果我的所有 ini 文件都到位(它们是),它会在数组中显示所有浏览器信息

function list_array ($array) {
while (list ($key, $value) = each ($array)) {
$str .= "$brw = <b>$key:</b> $value<br>\n";
}
return $str;
}
echo "$HTTP_USER_AGENT<hr>\n";
$browser = get_browser();
echo list_array ((array) $browser);

然后显示这个

 browser_name_regex: �^mozilla/5\.0 \(.*windows nt 6\.2.*wow64.*\) applewebkit/.* \        (khtml, like gecko\).*chrome/28\..*safari/.*$�
= browser_name_pattern: Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/28.*Safari/*
= parent: Chrome 28.0
= platform: Win8
= platform_version: 6.2
= win32: 
= win64: 1
= comment: Chrome 28.0
= browser: Chrome
= version: 28.0
= majorver: 28
= minorver: 0
= frames: 1
= iframes: 1
= tables: 1
= cookies: 1
= javascript: 1
= javaapplets: 1
= cssversion: 3
= alpha: 
= beta: 
= win16: 
= backgroundsounds: 
= vbscript: 
= activexcontrols: 
= ismobiledevice: 
= issyndicationreader: 
= crawler: 
= aolversion: 0

现在问题出在所有检测浏览器 php 插件或下载都过于复杂所有我想要做的我分开 iphones ipads android 黑莓苹果和一些最基本的信息。我怎样才能把这个数组变成以后可以使用的变量。例如,如果我可以抓住数组中的第 2、3、n、4 个信息,我将获得我想要的所有信息,因为我需要它所有其他方式都一样准确,而且我似乎遇到了 iphone 显示为移动设备的问题,而我还没有尝试过例如

if (preg_match('/windows nt 6.2/i', $u_agent)) {
    $platform = 'Windows 8';
  }

$blackberry = strpos(&ua, 'Android') ? true : false;

并查看了 http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php.html http://www.phpjabbers.com/php-snippet/detect-browser-php。 php http://www.killersites.com/community/index.php?/topic/2562-php-to-detect-browser-and-operating-system/

4

1 回答 1

1

首先,您应该使用 foreach() 而不是每个 + 列表。见http://www.php.net/manual/fr/function.each.php#63805

其次,当您执行 (array) $browser 时,您将 get_browser 的结果转换为 list_array 函数的数组,这就是它工作的原因以及它不会产生致命错误的原因。

如果要将 get_browser 的结果用作数组,则应使用内置选项来执行此操作,即:

$b = get_browser(null, true);

这里的第二个选项告诉 get_browser 返回一个数组而不是一个对象,这应该可以解决您尝试将类用作数组的问题。

然后,您将能够使用:

echo $b['browser'];

get_browser 对象的默认返回类型,您必须使用

$b = get_browser();
echo $b->browser;

如果你想要同样的结果。

尝试阅读 php 手册http://php.net/manual/en/function.get-browser.php以更好地了解您正在使用的函数。您还将在评论中找到有用的代码。

最后,正如您被告知的那样,您应该使用现有的 API 进行统计。

祝你的编码好运。

于 2013-08-19T14:09:13.370 回答