前言
cli脚本是很多程序员需要接触到的东西,通常我们都使用echo来输出cli下面信息,但其实为了某些输出醒目,我们通常可以给某些特定的输出字符串加上一点颜色,例如:
点亮cli
使用特定的颜色代码对字符串进行包裹即可,例如:
echo "\033[31m colorful \033[0m normal \n"
echo "\033[1;31m colorful \033[0m normal \n"
颜色与code
来自:http://blog.lenss.nl/2012/05/adding-colors-to-php-cli-script-output/
- Black
0;30
- Blue
0;34
- Green
0;32
- Cyan
0;36
- Red
0;31
- Purple
0;35
- Brown
0;33
- Light Gray
0;37
- Dark Gray
1;30
- Light Blue
1;34
- Light Green
1;32
- Light Cyan
1;36
- Light Red
1;31
- Light Purple
1;35
- Yellow
1;33
- White
1;37
color函数实现
https://gist.github.com/hisune/98652966828b7111e9b10602eff4f946
/**
* 按颜色输出
* usage: color('error %e, notice %n, normal %s', 'xx', 'oo', 'yes ppg')
* @param $format
* @param mixed ...$args
* @return mixed
*/
function color($format, ...$args)
{
$colors = [
'%e' => "\e[31m%s\e[0m", // error
'%n' => "\e[34m%s\e[0m", // notice
'%o' => "\e[32m%s\e[0m", // ok
'%b' => "\e[33m%s\e[0m", // Brown
'%s' => "%s", // normal
];
while(true){
$indexes = [];
foreach($colors as $tag => $addOn){
$position = strpos($format, $tag);
if($position !== false){
$indexes[$tag] = $position;
}
}
if(!$indexes){
break;
}
$min = min($indexes);
$index = array_keys($indexes, $min);
$replacement = array_shift($args);
$format = substr_replace($format, sprintf($colors[$index[0]], $replacement), $min, 2);
}
echo $format . "\n";
}
如果您觉得您在我这里学到了新姿势,博主支持转载,姿势本身就是用来相互学习的。同时,本站文章如未注明均为 hisune 原创 请尊重劳动成果 转载请注明 转自: 为你的php cli脚本输出加点颜色 - hisune.com
0 Comments