请注意,与有效利用内存的 PHP 变量不同,获取输出缓冲区的内容会导致创建输出缓冲区的新的副本。如果您的输出很大,这最终会导致您的脚本的内存需求大幅增加。
示例代码
<?php
print(memory_get_usage() . "<br>");
ob_start();
for ($i = 0; $i < 5000000; $i++)
print(" ");
print(memory_get_usage() . "<br>");
$foo = ob_get_contents();
print(memory_get_usage() . "<br>");
ob_end_flush();
?>
输出
351664
5359152
10359256