php ProgressBar类仅显示99%的已完成作业

php ProgressBar类仅显示99%的已完成作业,php,for-loop,Php,For Loop,我使用下面链接中的ProgressBar类来显示图像下载的进度条 我正在使用以下代码 echo 'Starting Image Download...<br />'; $p = new ProgressBar(); echo '<div style="width: 300px;">'; $p->render(); echo '</div>'; //progress bar for ($i = 0; $i < ($size = 100); $i+

我使用下面链接中的ProgressBar类来显示图像下载的进度条

我正在使用以下代码

echo 'Starting Image Download...<br />';
$p = new ProgressBar();
echo '<div style="width: 300px;">';
$p->render();
echo '</div>';

//progress bar
for ($i = 0; $i < ($size = 100); $i++) {
$p->setProgressBarProgress($i*100/$size);
usleep(1000000*0.01);
 } 
fetch_image("$item", "../cbimages/$img ");
echo "Downloaded $img <br />";
}
echo "Finished downloading images....";
至:

if ($percentDone == 100) {
print('document.getElementById("'.$this->pbid.'").style.display = "none";');
 } 
if ($percentDone == 100) {
print('document.getElementById("'.$this->pbid.'").style.width = "'.$percentDone.'%";');

您的for循环当前只计算到99,因为您使用的循环不太正确

你有这个:

 for ($i = 0; $i < ($size = 100); $i++) {
用于($i=0;$i<($size=100);$i++){
规则是i<100,因此,当i==100时,循环不会运行。这意味着它永远不会传递给setProgressBarProgress()

这将有助于:

for ($i = 0; $i <= ($size = 100); $i++) {

用于($i=0;$i我很早就试过了……但是,进度条只在第一次下载时显示……之后不再显示……只显示下载的1.jpg下载的2.jpg。然后,您包含的文件中的JS听起来像是有问题,这超出了这个问题的范围。@Evan Darwin它不是javascript,而是一个php类从类网站链接中的消息可以看出,大多数人的php类工作正常:@user3790186看起来您缺少了
$p->setProgressBarProgress(100)
在完成for循环后调用。我尝试得太早了…它只会显示一次进度条..而不会显示后续迭代..请注意,这与上面evan发布的解决方案相同。我已经尝试过了,进度条只会显示第一次下载,之后不会显示。请阅读上面的评论。。
for ($i = 0; $i <= ($size = 100); $i++) {