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


Warning: str_repeat(): Second argument has to be greater than or equal to 0

我以前用过这个来从某个地方获取图像,但由于我刚刚再次尝试使用它,它给了我这个错误:

警告: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);
}

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

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

如果事实确实如此,那么您可以将其封装在abs()函数中,该函数将始终返回一个绝对值:

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

当然,这是一个丑陋的黑客攻击,并不能解决真正的问题。无论哪种方式,第一步都是确定为什么$length不是您期望的样子。