PHP、ターミナルへのechoに色付けをする。

consoleへの出力を見てでバッk区をするとき、どうも単色だと見にくくて作業が捗らない時があります。 そういう時に以下のようにcechoを定義して、echoからの出力に色をつけるとデバックがしやすいです。

<?php
//パラメータに文字列、色(30から47までの数字で指定できる)を設定する
function cecho($m, $c = 30) {
    return sprintf("\033[%dm %s \033[m", $c, $m);
}

echo "Hello, " . cecho("World!", 32);

出力はこんな感じになります

どんな色が使えるのは自分がつかっているターミナルの設定次第です。 確認したいときは

for ($i=30; $i<=47; $i++){
    echo sprintf("%02d\t", $i). cecho("[process]", $i)."\n";
}

を実行して見ましょう。

左側の数字が色に対応しています。

上手に活用するとこんな感じにデバックがしやすくなります