php from 进度,PHP命令行进度条

这段代码展示了如何在命令行中创建一个多进程进度条输出的示例。通过ini_set设置最大执行时间,并使用buildLine函数构建不同颜色的进度条。程序随机生成多个进度值并实时更新显示,提供了一个清除屏幕和输出进度条的功能。
摘要由CSDN通过智能技术生成

/**

多进度条输出

*/

ini_set('max_execution_time', '0');

$percentStatus = [];

// 组合成进度条

function buildLine(

math?formula=percent)%20%7BrepeatTimes = 100;

if (

math?formula=percent%20%3E%200)%20%7BhasColor = str_repeat('■',

math?formula=percent)%3B%20%7D%20else%20%7BhasColor = '';

}

if ($repeatTimes - $percent > 0) {

$noColor = str_repeat(' ', $repeatTimes - $percent);

} else {

$noColor = '';

}

$buffer = sprintf("[{$hasColor}{$noColor}]");

if ($percent !== 100) {

$percentString = sprintf("[ %-6s]", $percent . '%');

} else {

$percentString = sprintf("[ %-5s]", 'OK');;

}

return $percentString . $buffer . "\r";

}

// 输出进度条

function outputProgress(

math?formula=clear%20%3D%20false)%20%7B%20globalpercentStatus;

if ($clear) {

$number = count($percentStatus);

for ($i=0; $i < $number; $i++) {

system("tput cuu1");

system("tput el");

}

}

foreach ($percentStatus as $value) {

echo buildLine($value) . "\n";

}

}

// 更新进度条值

function updateProgressValue(

math?formula=k%2Cvalue) {

math?formula=percentStatus%5Bk] =

math?formula=value%3B%20if%20(percentStatus[

math?formula=k%5D%20%3E%3D%20100)%20%7BpercentStatus[$k] = 100;

outputProgress(true);

return;

}

outputProgress(true);

usleep(50000);

}

math?formula=percentStatus%5B0%5D%20%3D%200%3BpercentStatus[1] = 0;

math?formula=percentStatus%5B2%5D%20%3D%200%3BpercentStatus[3] = 0;

math?formula=percentStatus%5B4%5D%20%3D%200%3BpercentStatus[5] = 0;

math?formula=percentStatus%5B6%5D%20%3D%200%3BpercentStatus[7] = 0;

math?formula=percentStatus%5B8%5D%20%3D%200%3B%20outputProgress()%3B%20while(1)%20%7BpercentStatus[0] = rand(0, 100);

math?formula=percentStatus%5B1%5D%20%3D%20rand(0%2C%20100)%3BpercentStatus[2] = rand(0, 100);

math?formula=percentStatus%5B3%5D%20%3D%20rand(0%2C%20100)%3BpercentStatus[4] = rand(0, 100);

math?formula=percentStatus%5B5%5D%20%3D%20rand(0%2C%20100)%3BpercentStatus[6] = rand(0, 100);

math?formula=percentStatus%5B7%5D%20%3D%20rand(0%2C%20100)%3BpercentStatus[8] = rand(0, 100);

outputProgress(true);

usleep(500000);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值