警告:str_repeat():第二个参数必须大于或等于0

时间:2016-04-20 17:50:06

标签: php

我用了一段时间来抓取某些东西的图像,但是因为我刚刚尝试再次使用它,它给了我这个错误:

  

警告:str_repeat():第121行的C:\ inetpub \ wwwroot \ resource_update.php中第二个参数必须大于或等于0

这是它所指的功能,所以如果有人能提供帮助那就太棒了:

function consoleLogProgressBar($current, $size, $unit = "kb")
{
$length = (int)(($current/$size)*100);
$str = sprintf("\r[%-100s] %3d%% (%2d/%2d%s)", str_repeat("=", $length).($length==100?"":">"), $length, ($current/($unit=="kb"?1024:1)), $size/($unit=="kb"?1024:1), " ".$unit);
consoleLog($str, true);
}

1 个答案:

答案 0 :(得分:0)

听起来像$length正在返回一个负数?您可以按以下方式进行故障排除:

$length = (int)(($current/$size)*100);
var_dump($length);
exit;

如果确实如此,那么你可以将它包装在abs()函数中,该函数将始终返回绝对值:

$length = (int) abs(($current/$size)*100);

当然,这是一个丑陋的黑客,并没有解决真正的问题。无论哪种方式,第一步都是确定为什么$length不符合您的预期。