132件中 131-132件目     [ ... 18 19 20 21 22 23 24 25 26 27 ]

PHPは、echo,printやprintf関数など様々な方法で文字列を出力して、その結果をブラウザに表示させることができる。 このとき出力される結果が、あまり変化することがない場合、あらかじめその出力結果をHTMLファイルに出力しておいて、それを表示させる方が処理が減って効率が良くなることがある。

例えば、ブログでは投稿回数に対して、閲覧回数の方が明らかに多い。投稿などがされない限り、出力結果に変化はない。 さすがに、全てのページを生成しないにしても、閲覧回数の多いトップだけでもHTMLファイルにしてユーザに見せれば、サーバへの負荷は減るはずである。 ページの更新は、投稿があるたびにPHPでHTMLファイルを出力させればいい。

こういった処理をさせるために、PHPファイルを書き換えるとなると、echoやprintをfwrite関数などに全て書き換えなければならないと思うかもしれない。 しかし、PHPには出力のバッファリングをする便利な出力制御関数がある。

ob_start関数でバッファリングを開始すると、echoなどによる出力されるはずの内容が内部的に保存される。 その保存されているデータは、ob_get_contents関数で取得、ob_flush関数で出力、ob_end_clean関数でバッファをクリアしバッファリングを終了などの操作ができる。 ob_start関数で出力されるはずの内容をob_get_contents関数で取得すれば、簡単に書き換えができる。

<?php
	ob_start();	//バッファリング開始
	echo "これはテスト用文字列です。";	//ここでは出力されない
	$output = ob_get_contents();		//出力されるはずだったデータを取得
	ob_end_clean();			 			//本来出力されるはずのデータをクリア(これをしないと実行終了時に出力されてしまう)

	//上で取得した$outputをファイル(test.txt)に出力する
	$fp = fopen('test.txt', 'w');
	fwrite($fp, $output);
	fclose($fp);
?>

タグ [ PHP , Tips ]
修正:
  • 誤字修正 (2009/05/28 19:27:37)

当サイトは現在、試験運用中です。

そのため、サーバ、回線ともに低スペックなものを使用しており、ページが全体的に少し重くなっています。 今後、アクセスの増加が見込めそうな場合、新しくより良いものを用意する予定です。


132件中 131-132件目     [ ... 18 19 20 21 22 23 24 25 26 27 ]