7

ob_start() 似乎没有停止任何输出,所以当我刷新缓冲区时它会加倍

<?php
ob_start();
echo "Text..... <br />";
echo ob_get_flush();
?>

输出

Text..... 
Text..... 

但我期待

Text..... 

有任何想法吗 ?

谢谢

4

2 回答 2

13

删除最后一行的回声。

ob_get_flush()隐式打印存储的输出并返回它,因此您将其打印两次。

你可能已经混淆ob_get_flush()ob_get_clean()

于 2010-07-14T15:09:13.833 回答
1

尝试:

<?php
ob_start();
echo "Text..... <br />";
ob_get_flush();
?>

来自http://php.net/manual/en/function.ob-get-flush.php

刷新输出缓冲区,将其作为字符串返回并关闭输出缓冲

刷新输出意味着:它将输出发送到浏览器或命令行。返回字符串意味着:它返回字符串,因此您可以将刷新的字符串存储在变量中。并且由于您正在echo输入此字符串,因此您会第二次获得输出。

于 2010-07-14T15:11:58.663 回答