skillup

技術ブログ

PHP

ob_startを使ったバッファリング出力

投稿日:2017年5月23日 更新日:

先日var_dumpの結果をログに出力したいときに検索すると下記のようなコードを書けばよいということがわかりました。

ob_startとかってたまに見るんだけど理屈理解していないのでちょっと調べることに・・・

ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入

すげー分かりやすいサンプルが↑にあり、これがそのまま使えるのでのせてしまいます。

簡単に言うと下記のような理解

  • ob_startとob_end_cleanの間は出力がされずにバッファという別領域にデータがためられます。録画みたいなイメージ
  • ob_get_contentsでバッファ内容がそれまでのバッファ内容をとりこむ。上記だとvar_dump($arr)の部分
  • $resultは普通の文字列なのであとはこれをログで普通に吐き出せばOK

PDFエラーの時に、ob_end_cleanを使っていることがあったけど、こういう意味だったんですね・・・

http://skill-up-engineering.com/?p=2473

よく調べるとバッファリングを使ったログ出力は以下のリンクでも自分は書いてましたねー。いやー理解していないから忘却の彼方でした(汗)。

http://skill-up-engineering.com/?p=1477

-PHP
-,

執筆者:


  1. […] ob_startを使ったバッファリング出力 (参考リンク:http://skill-up-engineering.com/2017/05/23/post-2796/) […]

comment

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

関連記事

no image

Basic認証のあるページの情報の取得

ひさびさにPHPネタです。 PHPではWEBページを保存するときにfile_get_contents(url)と書いてあげるとHTMLデータを取得できます。 が、Basic認証などのページは当然fal …

no image

PDFテンプレートの活用

PDFのテンプレートの活用について。 PDFを出力するプログラムはいろいろありますが、今回はすでにあるPDFをテンプレート化できるライブラリについて。 Contents1 FPDI2 ソース3 参考リ …

no image

エラーハンドリング

エラーが起きた時にPHPだと画面に出ますが(出ない場合は画面が白くなります)、これを検知し、ログに吐いたり任意の処理をできるのがエラーハンドリングです。 フレームワークなどにはほぼこの仕組みが内在して …

no image

phpの時分秒+cakePHPのupdate

ちょっと小ネタ集になります。 Contents1 PHPで秒→時分秒変換2 cakePHPでのupdate PHPで秒→時分秒変換 PHPで秒数から時分秒に変換するプログラムです。 汎用的かなと思った …

no image

Laravelのルーティングに関して

Laravelでのルーティングに関して。 惰性で使っていたんですが、これを機にしっかりと整理してみようかと。あくまで頻出パターンのみです。 ディフォルトだとroutes/web.phpが読み込まれます …