0

基本上,我正在尝试为一些在线程序创建兼容性测试,我希望用户查看它们是否与我所拥有的系统兼容,就像在这里找到的那​​样。

我在网站上使用 WordPress,但找不到可以检测到所有这些东西的插件、PHP 或 Javascript 源。该网站可能正在使用 ASP,但我认为这也应该可以通过 PHP 检测到,对吗?

4

2 回答 2

1

可以通过查看$_SERVER['HTTP_USER_AGENT']. 浏览器也进入了User-Agent。Adobe Reader 不能用 php 读取,但navigator.plugins对象中有 JavaScript。带宽不容易检测。

关于用户代理,我当前的一个是这里:

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0

这意味着我在 Windows 7 x64 上使用 19.0 版的 Firefox。

为了通过插件检测实际的 Adob​​e Reader 版本循环并查找名称(属性)Adob​​e Acrobat在我的情况下navigator.plugins[2].version返回10.1.6.1

关于带宽,您可以尝试下载数据并测量需要多长时间。但请注意,在某些情况下,您会浪费用户的流量,尤其是在移动设备上。但是,您应该避免在大多数情况下实际带宽并不重要。

于 2013-03-12T18:07:17.493 回答
0

http://thecodeabode.blogspot.ca/2011/01/detect-adobe-reader-plugin.html

大部分与上面的答案相同,使用 navigator.plugins 可以检测 Adob​​e Reader 之类的东西。但是,要检测带宽,您需要创建一个定时脚本来记录检索文件所需的时间。例如http://api.jquery.com/jQuery.ajax/ 您可以通过 javascript 加载图像,或制作 PHP 输出的图像文件。

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
$file = '../image.jpg';
$type = 'image/jpeg';
$ts = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: $ts");
header("Last-Modified: $ts");
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
?>

这将计算服务器/客户端加载输出图像所需的时间。在 $total_time 之后,您可以将加载 6MB 图像所需的时间放入 mysql 等数据库中。然后,您将 SIZE 除以 TIME。因此,如果需要 2 秒,他们会说是 3Mbps 连接。补充:

8 Bits = 1 Byte
1024 Bytes = 1 KiloByte
1024 KiloBytes = 1 MegaByte
1024 MegaBytes = 1 GigaByte
1024 GigaBytes = 1 TeraByte

因此,如果说用户在 1 秒内加载 1MB,请尝试 2​​MB,依此类推。但如果需要更长的时间。说 14 秒下载 1MB 除 1/14

0.125MB = 1 megabit
6/0.125/1 = 48 Mbit(Mbps)
1/0.125/14 = 0.57Mbit
于 2013-03-12T18:26:04.317 回答