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}{\displaystyle n-10}
20 尖角體 幾乎無支持。
21 關閉粗體或雙下划線 關閉粗體未廣泛支持;雙下划線幾乎無支持。
22 正常顏色或強度 不強不弱。
23 非斜體、非尖角體  
24 關閉下划線 去掉單雙下划線。
25 關閉閃爍  
27 關閉反顯  
28 關閉隱藏  
29 關閉划除  
30–37 設置前景色 參見下面的顏色表。
38 設置前景色 下一個參數是5;n2;r;g;b,見下。
39 默認前景色 由具體實現定義(按照標准)。
40–47 設置背景色 參見下面的顏色表。
48 設置背景色 下一個參數是5;n2;r;g;b,見下。
49 默認背景色 由具體實現定義(按照標准)。
51 Framed  
52 Encircled  
53 上划線  
54 Not framed or encircled  
55 關閉上划線  
60 表意文字下划線或右邊線 幾乎無支持。
61 表意文字雙下划線或雙右邊線
62 表意文字上划線或左邊線
63 表意文字雙上划線或雙左邊線
64 表意文字着重標志
65 表意文字屬性關閉 重置6064的所有效果。
90–97 設置明亮的前景色 aixterm(非標准)。
100–107 設置明亮的背景色 aixterm(非標准)。

根據表格我們可以看出 設置的參數 38表示設置前景色5表示顏色的設置模式表示的是256種顏色 1表示使用的那種顏色

除了設置顏色屬性外我們還可以設置下划線等其他屬性,而且並不是每種屬性都需要設置多個參數,例如下划線屬性我們直接添加個4就可以啦

<?php
echo "\033[38;5;1;4m紅色文字\033[0m";

注意:由於各個系統終端的不同,所以有的設置是不起作用的或者效果會有所差異,最終效果以實際的顯示效果為准!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM