PHP如何控制终端输出文字颜色
经常碰到一些语言在终端下执行的时候为什么可以输出一些彩色的文字样式,今天刚好执行 composer 工具的帮助时候发现竟然PHP也可以实现这样的效果(composer是一个Phar包程序,本质上就是一个PHP程序包)
经过研究发现其实原理挺简单,看看下面这段执行的PHP代码效果
$php -r “echo \”用\\033[0;32mPHP\\033[0m\\033[41m输出一段\\033[0;31m彩\\033[0;33m色\\033[0;34m文\\033[0;35m字 \\033[0m \n\”;”
其实背后原理很简单,分析上面的代码可以看到一串由 \033[ 开始的字符,其实这一段字符是用于引导非常规字符序列,在这里的作用就是引导设置输出属性,后边的[32m就是将前景色设置为绿色,字母m表示设置的属性类别,数字代表属性值。同类的多种设置项可以组合在一起,中间用分号(;)隔开。
除设置文本颜色以外,还以可设置以下属性:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m 至 \33[37m 设置前景色
\033[40m 至 \33[47m 设置背景色
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
各数字所代表的颜色如下:
字背景颜色范围:40—-49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字颜色:30———–39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
OK,掌握以上属性设置就可以完成很多有趣玩法了,而且以此类推其他语言也可以这样玩。
引用
http://blog.csdn.net/acmee/article/details/6613060