我希望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();