php - 如何使用 PHP 确定下载时长?

标签 php time download

我已经在不同地理位置的两台服务器上上传了相同的文件,现在我想计算使用 PHP 分别下载它们所需的时间。有什么解决办法吗?
例如我需要有这样的东西:

Your download will long about 30 sec. from server #1, and 50 sec from server #2.

最佳答案

您实际上是在尝试通过您正在做的事情来编写内容分发网络(CSN)。

CDN 本质上极其复杂,并使用多种策略来确定传输数据的最短路径。

实现这种方式的一个简单的服务器端方法可能是使用 IP 地址对用户进行地理定位,从而确定用户所在的国家或城市。然后,您可以将用户重定向到距离其位置最近的服务器。

如果您想计算多台服务器的时间,可以通过使用客户端从两台服务器下载一个小文件并使用传输时间来计算带宽来实现。

使用 AJAX 计算时间

我假设你正在使用jquery,但你可以使用prototypeJS等轻松地做到这一点。

var date = new Date();
var startTime = date.getMilliseconds();

//Known file size in KB
var fileSize = 100;

$.ajax({
  url: "http://www.example.com"
}).done(function() { 
    alert(calculateBandwidth());
});

function calculateBandwidth(){
    var date = new Date();
    var end = date.getMilliseconds();
    var secondsTaken = (end - start)/1000;
    var KBps = fileSize/secondsTaken;
    return KBps;
}

请注意,这是每秒千字节数。千位将为 (文件大小*8)/SecondsTaken

关于php - 如何使用 PHP 确定下载时长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030530/

相关文章:

time - SUTime 具有常规日期读数

java - 如何在使用 chrome 驱动程序/firefox 驱动程序时更改 Webdriver 中的文件下载位置

iphone - iOS - 如何知道 NSOperationQueue 何时完成处理一些操作?

php - Laravel DB 失去连接(大概)

php - 如何更改jquery文件上传的默认上传路径

php - YouTube 数据 API : authenticate as a resource owner

php - 使用 codeigniter 将数据上传到 MsSQL 时使用正确的参数

python - 如何在满足 while 循环条件时跳出 time.sleep()

c# - 我如何找到最后一个类次开始的时间? (按 24 小时时间表)

apache - 阻止 mp3 文件在浏览器中流式传输