ob_get_flush
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ob_get_flush — アクティブな出力ハンドラの戻り値をフラッシュ(送信)し、その内容を文字列として返した後で、それをオフにする
説明
この関数は、
(PHP_OUTPUT_HANDLER_FINAL
フラグを指定して)
出力ハンドラをコールし、その戻り値をフラッシュ(送信)するとともに、
アクティブな出力バッファの内容を返しつつ、
それをオフにします。
PHP_OUTPUT_HANDLER_REMOVABLE
を指定して
アクティブな出力バッファを開始しないと、
ob_get_flush() は失敗します。
ob_get_flush()
は、PHP_OUTPUT_HANDLER_FLUSHABLE
を指定せずにアクティブな出力バッファを開始したとしても、
出力ハンドラの戻り値をフラッシュ(送信) します。
パラメータ
この関数にはパラメータはありません。
戻り値
成功した場合、アクティブな出力バッファの内容を返します。
失敗した場合、false
を返します。
エラー / 例外
この関数が失敗すると、
E_NOTICE
が発生します。
例
例1 ob_get_flush() の例
<?php
//output_buffering=On であるとします
print_r(ob_list_handlers());
// バッファをファイルに保存します
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);
print_r(ob_list_handlers());
?>
上の例の出力は以下となります。
Array ( [0] => default output handler ) Array ( )
参考
- ob_start() - 出力のバッファリングを有効にする
- ob_get_contents() - 出力用バッファの内容を返す
- ob_flush() - アクティブな出力ハンドラの戻り値をフラッシュ(送信)する
- ob_end_flush() - アクティブな出力用バッファをフラッシュ(送信)し、アクティブな出力バッファをオフにする
- ob_get_clean() - アクティブな出力バッファの内容を取得し、そのバッファをオフにする
+add a note
User Contributed Notes 3 notes
info at pcdoctor dot fr ¶
16 years ago
Hi,
this is just to add a behavior that I haven't understud at first place.
ob_get_flush actually returns the content of the buffer as a text but also it sends the buffer back to the browser so that it's displayed on user screen.
Use ob_get_clean if you do not want the buffer to be send to the user
taras dot dot dot di at gmail dot com ¶
16 years ago
I don't know how exactly this works, but if you call this function, PHP would behave as if headers have been sent (even though the output has gone to a string).
This means that you can't call this function, and then call setcookie for example.
This was verified by trial and error
zubin@byron ¶
19 years ago
Correction to previous post: ob_get_clean() is better, ie:
<?php
// start generating html
$html = '<html><head>'; // etc
// start output buffering
ob_start();
// call function which outputs immediately
print_menu();
// append this to $html and empty buffer
$html .= ob_get_clean();
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google