PHP プログラミングでは、passthru()、readfile()、var_dump() などの出力を直接生成する関数がよく出てきます。しかし、場合によっては、これらの関数の出力をファイルにインポートしたり、最初に処理したりしたいことがあります。次に、これらの関数の出力を文字列として出力または処理します。
このとき、出力バッファ機能を使用します。
出力バッファリングを処理する主な関数がいくつかあります:
ob_start() は出力バッファリングを開始し、この時点で PHP は出力を停止し、後続の出力はすべて内部バッファーに転送されます。
ob_get_contents() この関数は、内部バッファーの内容を返します。これは、これらの出力を文字列に変換することと同等です。
ob_get_length() は内部バッファの長さを返します。
ob_end_flush() は出力バッファを終了し、バッファの内容を出力します。これ以降、出力は通常の出力になります。
ob_end_clean() は出力バッファを終了し、バッファの内容を破棄します。
たとえば、var_dump() 関数は変数の構造と内容を出力します。これはデバッグ中に役立ちます。
ただし、変数の内容に <、> などの特殊な HTML 文字が含まれている場合、Web ページに出力するときに表示されません。どうすればよいですか?
この問題は、出力バッファ機能を使用すると簡単に解決できます。
ob_start();
var_dump($var);
$out = ob_get_contents();
ob_end_clean();
この時点で、var_dump() の出力は既に $out に保存されていますので、今すぐ出力できます:
エコー「
」
リーリー
;
または、将来まで待つか、この文字列を出力する前にテンプレート (Template) に送信します。