我希望得到并记录每个请求来到我的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服务器输出的所有内容?
谢谢。
答案 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