ob_start echo's strings out still


ob_start echo's strings out still

我希望ob_start()不让echo的输出到它们的正常目的地,而只是记录它们的内容。但它似乎并没有这样做。什么好主意吗?下面是我的代码:

<?php
ob_start();
echo 'test';
$out = ob_get_contents();
var_dump($out);

test仍然回显。它也是var_dump'd,但是我不希望它被echo'd。

任何想法?

谢谢!

输出缓冲区在脚本结束时自动刷新,所以这是预期的行为。

你正在寻找ob_get_clean(),它在清除它之前返回当前缓冲区:

$out = ob_get_clean();