php - 如何获取服务器响应头和正文

时间:2016-08-10 11:26:30

标签: php

我希望得到并记录每个请求来到我的PHP文件以及我的PHP文件输出的每个响应

对于请求,很容易抛出超级全局变量,例如$_post['key'],但我不知道如何获取我的php文件输出到客户端。 我唯一可以做的就是延迟我的代码中的任何echos并构建一个输出字符串,如$response抛出我的PHP代码,并在脚本结束时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解析器输出警告和错误以及除了我的响应之外的其他内容,除了我不想延迟所有的回声,但我想使用echo抛出我的代码以获得更多便利。

有没有办法使用echos抛出我的代码并获取我的整个响应,包括响应头和我的php服务器输出的所有内容?

谢谢。

1 个答案:

答案 0 :(得分: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