【PHP】includeしたプログラム等をすぐに出力させないでバッファリングしておく方法(ob_start)

サイト作成時にヘッダーやフッターなどの共通部分を別のファイルにしてincludeなどで読み込むといった方法は割と一般的にすると思いますが、includeするとその場でプログラムが実行されますよね?そのため出力したい場所でincludeする必要があります。

しかし同じ処理を複数回する場合など、何度もincludeするのは無駄なので、一度includeした処理を一旦バッファリングしておいて、後で好きな時に出力するといった方が効率的ですね。

ob_start();
include( './header.php' );
$header = ob_get_contents();
ob_end_clean();

echo $header;

上記の例では、ヘッダー用のファイルheader.phpを読み込んで、$headerという変数に一旦格納して、その後にechoで書き出しています。

この場合はあまり意味はありませんが、その場ですぐに実行させたくない処理を変数に入れておけるのは便利ですね。

このob_start関数を使ったバッファリングの方法はincludeの時だけでなくプログラム上で一旦バッファリングしておきたい処理などにも使えるので、覚えておくと役に立つかもです。(という自分用のメモ)