How to enable color for PHP CLI? How to enable color for PHP CLI? bash bash

How to enable color for PHP CLI?


First we use an escape character so we can actually define a output color. This is done with \033 (\e). Then we open the color statement with [31m. Red in this case.

The "some colored text" will be the text outputted in a different color. And after that we have to close the color statement with \033[0m.

php -r 'echo "\033[31m some colored text \033[0m some white text \n";'

ref 1

ref 2

enter image description here


For lazier

function colorLog($str, $type = 'i'){    switch ($type) {        case 'e': //error            echo "\033[31m$str \033[0m\n";        break;        case 's': //success            echo "\033[32m$str \033[0m\n";        break;        case 'w': //warning            echo "\033[33m$str \033[0m\n";        break;          case 'i': //info            echo "\033[36m$str \033[0m\n";        break;              default:        # code...        break;    }}


After doing some experiments, I made these codes:

function formatPrint(array $format=[],string $text = '') {  $codes=[    'bold'=>1,    'italic'=>3, 'underline'=>4, 'strikethrough'=>9,    'black'=>30, 'red'=>31, 'green'=>32, 'yellow'=>33,'blue'=>34, 'magenta'=>35, 'cyan'=>36, 'white'=>37,    'blackbg'=>40, 'redbg'=>41, 'greenbg'=>42, 'yellowbg'=>44,'bluebg'=>44, 'magentabg'=>45, 'cyanbg'=>46, 'lightgreybg'=>47  ];  $formatMap = array_map(function ($v) use ($codes) { return $codes[$v]; }, $format);  echo "\e[".implode(';',$formatMap).'m'.$text."\e[0m";}function formatPrintLn(array $format=[], string $text='') {  formatPrint($format, $text); echo "\r\n";}//Examples:formatPrint(['blue', 'bold', 'italic','strikethrough'], "Wohoo");formatPrintLn(['yellow', 'italic'], " I'm invicible");formatPrintLn(['yellow', 'bold'], "I'm invicible");

Just copy and paste the code above and... Enjoy :)