php实现命令行里输出带颜色文字
今天执行composer的时候看到命令窗口出现的提示里面有的关键性部分带有颜色,于是很好奇研究了一下,在这里记录下来
其实在命令行输出带颜色字体主要是使用的 ANSI 转义字符实现的,我们先看个例子:
<?
echo "\033[38;5;1m红色文字\033[0m";
显示:

在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码,其格式为:
\033[38;5;1m红色文字\033[0m
代表开始设置标签
代表设置完成标签
代表设置参数
代表要显示的字符
这里开始标签和结束标签都是固定的,开始标签是 “\033[” 结束标签是 “m” 其中参数部分的含义可以按照下表中的参数来设置
| 代码 | 作用 | 备注 |
|---|---|---|
| 0 | 重置/正常 | 关闭所有属性。 |
| 1 | 粗体或增加强度 | |
| 2 | 弱化(降低强度) | 未广泛支持。 |
| 3 | 斜体 | 未广泛支持。有时视为反相显示。 |
| 4 | 下划线 | |
| 5 | 缓慢闪烁 | 低于每分钟150次。 |
| 6 | 快速闪烁 | MS-DOS ANSI.SYS;每分钟150以上;未广泛支持。 |
| 7 | 反显 | 前景色与背景色交换。 |
| 8 | 隐藏 | 未广泛支持。 |
| 9 | 划除 | 字符清晰,但标记为删除。未广泛支持。 |
| 10 | 主要(默认)字体 | |
| 11–19 | 替代字体 | 选择替代字体{\displaystyle n-10} |
| 20 | 尖角体 | 几乎无支持。 |
| 21 | 关闭粗体或双下划线 | 关闭粗体未广泛支持;双下划线几乎无支持。 |
| 22 | 正常颜色或强度 | 不强不弱。 |
| 23 | 非斜体、非尖角体 | |
| 24 | 关闭下划线 | 去掉单双下划线。 |
| 25 | 关闭闪烁 | |
| 27 | 关闭反显 | |
| 28 | 关闭隐藏 | |
| 29 | 关闭划除 | |
| 30–37 | 设置前景色 | 参见下面的颜色表。 |
| 38 | 设置前景色 | 下一个参数是5;n或2;r;g;b,见下。 |
| 39 | 默认前景色 | 由具体实现定义(按照标准)。 |
| 40–47 | 设置背景色 | 参见下面的颜色表。 |
| 48 | 设置背景色 | 下一个参数是5;n或2;r;g;b,见下。 |
| 49 | 默认背景色 | 由具体实现定义(按照标准)。 |
| 51 | Framed | |
| 52 | Encircled | |
| 53 | 上划线 | |
| 54 | Not framed or encircled | |
| 55 | 关闭上划线 | |
| 60 | 表意文字下划线或右边线 | 几乎无支持。 |
| 61 | 表意文字双下划线或双右边线 | |
| 62 | 表意文字上划线或左边线 | |
| 63 | 表意文字双上划线或双左边线 | |
| 64 | 表意文字着重标志 | |
| 65 | 表意文字属性关闭 | 重置60–64的所有效果。 |
| 90–97 | 设置明亮的前景色 | aixterm(非标准)。 |
| 100–107 | 设置明亮的背景色 | aixterm(非标准)。 |
根据表格我们可以看出 设置的参数 38表示设置前景色5表示颜色的设置模式表示的是256种颜色 1表示使用的那种颜色
除了设置颜色属性外我们还可以设置下划线等其他属性,而且并不是每种属性都需要设置多个参数,例如下划线属性我们直接添加个4就可以啦
<?php
echo "\033[38;5;1;4m红色文字\033[0m";

注意:由于各个系统终端的不同,所以有的设置是不起作用的或者效果会有所差异,最终效果以实际的显示效果为准!
php实现命令行里输出带颜色文字的更多相关文章
- Linux下Shell脚本输出带颜色文字
文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置作用如下: 背景色为蓝色 ...
- print控制台输出带颜色文字方法
在python开发的过程中,经常会遇到需要打印各种信息.海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性.这时候,如果能给重要的信息加上字体颜色,那么就会更加方便用户阅读了. ...
- python控制台输出带颜色文字的方法
目地:提高重要信息的可读性,方便用户阅读了. 书写格式如下: #格式: 设置颜色开始 :\033[显示方式;前景色;背景色m #说明: 前景色 背景色 颜色 --------------------- ...
- C# 输出带颜色文字,用于实时日志输出
private void button1_Click(object sender, EventArgs e) { LogMessage("绿色"); 4 LogError(&quo ...
- python 控制台输出带颜色的文字的方法
python_控制台输出带颜色的文字方法 在python开发的过程中,经常会遇到需要打印各种信息.海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性.这时候,如果能给重要的信 ...
- 小技巧:with用法 pycharm控制台输出带颜色的文字 打印进度条的
with用法 with用法在python中是一个很独特的用法,因为别的语言的中没有这个用法.所以针对这个特点我们来做一次总结,什么样的情况下可以同with 我们学到的有文件的操作,和acquire ...
- php 扫描url死链接 \033[31m ANSI Linux终端输出带颜色
* 从Packagist上搜索需要的包 https://packagist.org/ * 通过composer下载依赖包 composer require guzzlehttp/guzzlecompo ...
- 【转】Python实现修改Windows CMD命令行输出颜色(完全解析)
用Python写命令行程序的时候,单一的输出颜色太单调.其实我们可以加些色彩,比如用红色表示警告,绿色表示结果正常等.网上也有几篇类似的帖子,但是没有把问题讲清楚,贴的代码也不是太清晰.这里,对Win ...
- python-pycharm控制台输出带颜色
python_控制台输出带颜色的文字方法 在python开发的过程中,经常会遇到需要打印各种信息.海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性.这时候,如果能给重要的信 ...
随机推荐
- angular 中*ngIf 和*ngSwitch判断语句
<div style="text-align:center"> <h1> Welcome to {{ title }}! </h1> <p ...
- Unix/Linux系统下获得时间戳函数
在Unix/Linux系统下,使用gettimeofday函数来获得当前系统的时间戳,精度可达到微秒(microsecond,即μs)级别. 通过结构体timeval来存放当前时间戳的信息: #ifn ...
- 014-多线程-基础-Exchanger-行线程间的数据交换
一.简介 Exchanger类允许在两个线程之间定义同步点,当两个线程都到达同步点时,它们交换数据.也就是第一个线程的数据进入到第二个线程中,第二线程的数据进入到第一个线程中. Exchanger可以 ...
- MySQL导入utf8编码的CSV文件
首先,作为测试,我们在这里创建一个名为testdb的数据库,和一个名为test_table的表: create database if not exists testdb default charse ...
- Java多线程——线程池使用示例
示例代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public cla ...
- Spring Boot学习笔记——Spring Boot与ActiveMQ的集成
Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ.Artemis等.这里以ActiveMQ为 ...
- Hyperledger Fabric1.4 手动搭建过程
1.生成证书: #路径需要更改为自己的路径 cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network ...
- golang web框架 beego 学习 (七)json转数组
Modules type User struct { Id int64 `json:"id"` Name string `json:"name"` Email ...
- NLog文章系列—系列文章目录以及简要介绍
参考文章:http://www.cnblogs.com/dflying/archive/2006/12/04/581750.aspx
- mysql中mysql数据库丢失报错Can't open the mysql.plugin table
180720 10:00:54 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 18 ...