PHP bash(限定)でCLIカラー表示

PHP

コマンドラインで動作するアプリで、結果を出力時、カラー出力させて見やすくしたいと思って調べた方法

ANSI エスケープシーケンスというのを使うらしい。
文法がわかりずらいので、もう答えだけにしてきます。

以下は文字に色をつける場合。前後に挟む型と、文字をどうしたいかが指定されています。

echo "\033[31m{$str}\033[0m";

31mの部分が赤色という指定です。
数字の部分を使って各色や、背景色、アンダーライン、点滅などもあるのでここの表で確認
https://misc.flogisoft.com/bash/tip_colors_and_formatting

ということで、目的に合わせた各色を出力するfunctionを組んだ方が楽

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

文字色と背景など複数を組み合わせたい時は数字の部分を;(セミコロン)でつなげる

echo "\033[31;47m{$str}\033[0m";

参考

PHP CLIの色を有効にする方法は?

コメント

タイトルとURLをコピーしました