PHP-CLI 多行进度条

来源:互联网 发布:centos mirror 编辑:程序博客网 时间:2024/06/03 16:30

我们使用PHP运行任务的时候,通常需要查看进度。要是能有一个像下载进度条一样直观的图就更好了。于是我做了一个。
这里写图片描述

<?php/***  ______        __             ____             __                        * /_  __/__ ____/ /  ___  ___  / _(_)__ ___  ___/ /                        *  / / / -_) __/ _ \/ _ \/ _ \/ _/ / -_) _ \/ _  /                         * /_/  \__/\__/_//_/_//_/\___/_//_/\__/_//_/\_,_/                          *    ___  ___  ___ _______ ______________________                          *   |_  ||_  |( _ <  / __// __<  <  / __<  / ___ \___ ____ _ _______  __ _ *  / __// __// _  / /__ \/__ \/ // /__ \/ / / _ `/ _ `/ _ `// __/ _ \/  ' \* /____/____/\___/_/____/____/_//_/____/_/\ \_,_/\_, /\_, (_)__/\___/_/_/_/*                                          \___/  /_/  /_/                 * 作者:Technofiend <2281551151@qq.com>* 多进度条输出*/ini_set('max_execution_time', '0');$percentStatus = [];// 组合成进度条function buildLine($percent) {    $repeatTimes = 100;    if ($percent > 0) {        $hasColor = str_repeat('■', $percent);    } else {        $hasColor = '';    }    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($clear = false){    global $percentStatus;    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($k, $value) {    $percentStatus[$k] = $value;    if ($percentStatus[$k] >= 100) {        $percentStatus[$k] = 100;        outputProgress(true);        return;    }    outputProgress(true);    usleep(50000);}$percentStatus[0] = 0;$percentStatus[1] = 0;$percentStatus[2] = 0;$percentStatus[3] = 0;$percentStatus[4] = 0;$percentStatus[5] = 0;$percentStatus[6] = 0;$percentStatus[7] = 0;$percentStatus[8] = 0;outputProgress();while(1) {    $percentStatus[0] = rand(0, 100);    $percentStatus[1] = rand(0, 100);    $percentStatus[2] = rand(0, 100);    $percentStatus[3] = rand(0, 100);    $percentStatus[4] = rand(0, 100);    $percentStatus[5] = rand(0, 100);    $percentStatus[6] = rand(0, 100);    $percentStatus[7] = rand(0, 100);    $percentStatus[8] = rand(0, 100);    outputProgress(true);    usleep(500000);}

大家可以复制上面代码,保存成为run.php
然后在linux下 运行 php run.php

原创粉丝点击