オープンソースこねこね

Webプログラミングなどについてあれこれ。

LTSVをyamlぽいフォーマットで色付き表示するPHPスクリプト

LTSVをyamlぽいフォーマットで色付き表示するだけ。 以下の記事のPHP版適当実装。

Code

#!/usr/bin/env php
<?php
/*
 * ltsv viewer
 *
 * ex)
 *   cat foo.log | php ltsview.php
 */

// refereces below.
//   http://d.hatena.ne.jp/naoya/20130206/1360154312
//   http://d.hatena.ne.jp/maru_cc/20080216/1203166254

$data = file_get_contents("php://stdin");
$arr = explode("\n", $data);
foreach ($arr as $v) {
  $ltsv_arr = explode("\t", $v);

  foreach ($ltsv_arr as $ltsv_v) {
    if (strpos($ltsv_v, ":") === false) {
      continue;
    }

    list($key, $value) = explode(":", $ltsv_v, 2);
    echo pack('c',0x1B)."[1;34m".$key.pack('c',0x1B)."[0m";
    echo pack('c',0x1B)."[1;31m".":".pack('c',0x1B)."[0m";
    echo $value."\n";
  }
  echo "---\n";
}

Gistにもあげときました。