基本的にPHPはprint()とかecho()とか書いた時点で文字が出力されますが、小出しに出力せずにバッファに保存しておいて、後で一気に出力、なんてことができます。
ob_start.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//出力バッファリングスタート
ob_start();
//printしても表示されずバッファに入れられる
print('example');
//バッファリングを終了した時点でバッファが表示される
ob_end_flush();
//引数に関数を入れると、ob_end_flush()時に呼ばれる
ob_start('htmlspecialchars');
//printしても表示されずバッファに入れられる
print('<br />');
//バッファの内容がhtmlspecialcharsされて表示される
ob_end_flush();
//出力バッファリングスタート
ob_start();
//printしても表示されずバッファに入れられる
print('hogehoge');
//現在のバッファの内容を取得
$tmp=ob_get_contents();
//バッファを削除してバッファリングを終了
ob_end_clean();
//$tmpには、ob_start()~ob_get_contents()までに出力した内容が含まれる
var_dump($tmp);
|
こんなふうに出力をためておくことができます。
ただこれ、どういう場合に使えばいいのかいまいちよくわからない。
http://www.ideaxidea.com/archives/2008/04/phpob_start.html
こちらでは文字コードをまとめて変更して出力、というのが紹介されていて一見便利そうに見えますが、このような書き方はわかりづらいのでそもそも根本的に行わない方がいいと思います。
変換処理はコントローラあたりに追い出したいところです。
まあ、MVCに分ける程でもない小規模なものならばこれで十分かもしれませんが。
PR
トラックバック
トラックバックURL: