gpt4 book ai didi

php - 如何在通过 PHP 函数连接到 FTP 时测量 PHP 中的 FTP 传输速度

转载 作者:行者123 更新时间:2023-12-02 06:22:57 29 4
gpt4 key购买 nike

我通过 PHP ftp_ 函数连接到服务器。

如何测量传输速度?

最佳答案

使用非阻塞 ftp 函数下载文件并计算时间和文件大小差异。下面是一个简单的演示,使用指数平滑来防止速度跳跃太多:

define('ALPHA', 0.2); // Weight factor of new calculations, between 0 and 1
$ftp = ftp_connect(...);
$tmp = ftp_nb_get($ftp, $filename, $filename, FTP_BINARY);
$transferred = 0;
$rate = 0;
$time = microtime(true);
while ($tmp == FTP_MOREDATA) {
$tmp = ftp_nb_continue($ftp);

$timeNow = microtime(true);
$sizeNow = filesize($filename);
$currentRate = ($sizeNow - $transferred) / ($timeNow - $time);
$rate = ALPHA * $currentRate + (1 - ALPHA) * $rate;
$time = $timeNow;
$transferred = $sizeNow;

echo "Current transfer speed: $rate B/s\n";
}

如果你想为 ftp_nb_put() 上传相同的东西,你必须将 filesize($filename) 替换为 ftp_size($ftp2,$filename) ,其中 $ftp2 必须是第二个相同的连接,仅用于询问远程文件的大小,因为 ftp_size() 无法使用您的主要连接,同时进行非阻塞传输。

关于php - 如何在通过 PHP 函数连接到 FTP 时测量 PHP 中的 FTP 传输速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6004868/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com