2016-08-10 11 views
1

すべてのリクエストをPHPファイルに取得してログに記録したいと思います。レスポンス PHPファイルが出力します。php - サーバーの応答ヘッダーと本文を取得する方法

リクエストに関しては、例えば$_post['key']という超大域変数を投げるのは簡単ですが、私のPHPファイルがクライアントに出力する内容を取得する方法はわかりません。 私ができる唯一のことは、echosを自分のコードで遅らせて、$responseのような1つの出力文字列を作成し、スクリプトの最後にechoとすることです。以下のような:私はすべてのエコーを遅らせたくないが、私は、より利便性のために自分のコードを投げるエコーを使用したいの横

$response = ""; 
$response .= "<html> somehtml"; 
//somecode if($condition){ $response .= "some html"}else{$response .= "another html"} 
//more code 
$response .="</html>"; 
echo $response; 
log($response); // custom function to store the response 

が、いくつかの回PHPパーサの出力の警告やエラー、および私の応答以外のもの、。

私のコードを投げるとレスポンスヘッダとすべてのもの、私のPHPサーバーの出力を含め、私の全体応答を取得エコー使用する方法はありますか?

ありがとうございます。

+0

通常、最初のアプリケーションのさまざまな部分からの出力を組み立てた後、一つの場所にクライアントに送信することをお勧めします。 今のところそれを再現するのは難しいかもしれませんが、最終的にはプログラムをより保守的にするでしょう。 – Max

答えて

2

ob_startとそれに関連するメソッドを使用すると、送信するまですべての出力をバッファに保持できます。例えば

ob_start(); 

echo 'weeee'; 

$output = ob_get_contents(); // get the contents from the buffer 
log($output); // your custom function 

ob_end_flush(); // send the output to the browser and turn off buffering 
+0

は '$ output'になりましたので、phpが出力する警告とエラーはありますか? –

+0

通常は直接出力されるすべてのものが必要です。 – rjdown

+0

あなたはこれがまさに私が探していたものです。レスポンスの「ヘッダー」については何ができますか? –

関連する問題