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

エラーハンドリング

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

no image

cakePHP3インストール

PHP7に上がりましたが、それ以前にcakeがversion3になっていますね。 いずれはこれでリプレイスをしなくてはいけないので、今日とりあえずインストールしてみました。 原則としてcomposer …

no image

cake3でのバッチスクリプト

以前、cakeでのバッチをこちらのエントリーで書きましたが、今回は3系でのバッチの書き方について。 といってもほとんど同じですが・・・ Contents1 ディレクトリ2 ソース ディレクトリ src …

no image

Queueの登録と実際の処理に関して

実務でQueueに絡んだ処理をする機会があったのでメモ。 Contents1 Queueとは2 Laravelでのキュー処理2.1 キューを記録しておく場所2.2 処理を登録する場面(当然まだ処理は行 …

no image

PHPの配列操作

ながらく放置してました・・・ PHPを久々にやったんですが、やっぱり配列の関数・ライブラリが充実している分、作業がサクサクすすみますね。配列の操作でいろいろと学ぶところがあったんで掲載します。 Con …