我的职能是:
curl_setopt( $curl, CURLOPT_PROGRESSFUNCTION, function ( $resource, $download_size, $downloaded_size, $upload_size, $uploaded_size) use ($array)
{
static $previousProgress = 0;
if ( $download_size == 0 ) {
$progress = 0;
} else {
$progress = round( $downloaded_size * 100 / $download_size );
}
正如你所看到的,我在插入我自己的变量
use
在函数的末尾。
我要做的就是在
else
条件
echo ' ' . $progress . '%' . ' (' . bytes($downloaded_size) . ' of ' . bytes($download_size) . ') ';
我曾尝试过
static $previousProgress = 0;
$count = $previousProgress++;
} else {
if ($count == 1) { echo echo ' ' . $progress . '%' . ' (' . bytes($downloaded_size) . ' of ' . bytes($download_size) . ') '; }
$progress = round( $downloaded_size * 100 / $download_size );
}
但此时,函数在命中
其他的
条件。
我当然可以这样做
static $previousProgress = 0;
$count = $previousProgress++;
if ($count == 1) { echo ' ' . $progress . '%' . ' (' . bytes($downloaded_size) . ' of ' . bytes($download_size) . ') '; }
它只能回声一次。但问题是
CURL
没有
$downloaded_size
或
$download_size
变量设置和显示为
0 bytes
-因此,它需要处于其他状态。
我试过用
true
/
false
变量,就像一个人通常会做的那样,在
for
或
foreach
循环,但是由于函数只是递归运行直到超时,所以函数再次启动,而这不起作用。
如我所说,我可以在这个函数中插入一个变量数组来帮助我…但是考虑到函数重新开始,并且每次都重新运行,我不确定如何做到这一点。
尝试了其他随机的事情,但我显然错过了一些东西。如何在重复功能中仅回显下载大小一次?