桜ヶ丘日記

技術メモとかとか

var_dumpの出力を変数に渡す

var_dumpは便利。

だけど何か加工を挟んでから表示したかったり、ログに出したりする場合、出力が常に画面に出てしまうという仕様が邪魔になる。

実はこれはなんとかなるようだ。

コード:

<?php
$hoge = array(
  "aaa" => 1,
  "bbb" => 12,
  "ccc" => 123,
);

function vdump($obj){
  ob_start();
  var_dump($obj);
  $dump = ob_get_contents();
  ob_end_clean();
  return $dump;
}

$hoge_dump = vdump($hoge);
$hoge_dump = preg_replace('/ /', '&nbsp;', $hoge_dump);
$hoge_dump = preg_replace('/\n/', '<br />', $hoge_dump);
print $hoge_dump;
?>

出力結果:

array(3) {
  ["aaa"]=>
  int(1)
  ["bbb"]=>
  int(12)
  ["ccc"]=>
  int(123)
}