2

で出力バッファリングを開始したらob_start()、1つのコマンドで、出力バッファリングを停止し、その内容を(出力に送信せずに)取得したいと思います。利用可能な機能を確認しましたが、各機能についての理解は次のとおりです。

                 clear  return  send    stop
ob_clean          x         
ob_end_clean      x                      x
ob_end_flush                      x      x
ob_flush                          x 
ob_get_clean      x        x             x  // should be called ob_get_end_clean
ob_get_contents            x        
ob_get_flush               x      x 

私が見る限り、バッファリングを停止した後に出力を返す関数はないので、関数の出力をキャプチャしたい場合は、3つのステップで実行する必要があります。

$output = ob_get_contents();
ob_end_clean();
return $output;

何かが足りないのですか、それとも出力バッファを一度に停止して返すコマンドがありますか?

4

2 に答える 2

2

マニュアルで言うと:

ob_get_clean()基本的にとの両方ob_get_contents()を実行しob_end_clean()ます。

(私が強調表示します)。コードとの比較:

$output = ob_get_contents();
ob_end_clean();

あなたのリストは何かを逃したに違いありません。

于 2012-10-21T16:12:55.867 に答える
1

これは1つである必要があり、説明の中でそれについても言及しています:)

http://www.php.net/manual/en/function.ob-get-clean.php

于 2012-10-21T16:12:35.187 に答える