PHPでprint_rの出力データをファイルに保存する


プログラムを組んでいて、デバッグ時に配列の中身を確認したいなーという時によく使うprint_r。
普通に使うと画面上に構造が綺麗なツリー上で出力されるのですが、場合によってはそれが使えない時もあります。
最近だと、Ajax使っている時にエラーが出るという理由でprint_rが使えないことが多いですね。

「print_rとか使わず、統合開発環境のEclipseとか使ってデバッグモード使えばいいのに」
と言われたりもするのですが、それはそれ。

「使えないから、感と気合いでがんばるしかないのかー」
って数ヶ月間くらい思ってました。
が、ファイルに保存するって手段があるんですよね。
ob_getcontents()がミソです。

ob_start();
print "\$hogehogeのデータ -----------------------\n";
print_r($hogehoge);
$debug_data = ob_get_contents();
ob_end_clean();
$fp = fopen("debug.log", "w");
fwrite($fp, $debug_data);
fclose($fp);

こんな感じでファイルに保存して、生成されたファイルをテキストエディタで開いてデバッグしたりしてます。
使い分けると便利ですよっ。
※ただ、ファイル保存する時はファイルを保存するディレクトリのパーミッションに気をつけてください。

Tag

“PHPでprint_rの出力データをファイルに保存する” への1件のコメント

  1. […] 下記サイトを参考に両方をMixして、実装。 WordPressの簡単なデバッグ出力関数 PHPでprint_rの出力データをファイルに保存する […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です