如何在每次循环迭代后清除输出缓冲区或服务器缓存

时间:2014-01-30 06:24:36

标签: php out-of-memory outputcache

我有一个用PHP编写的脚本:

for ($i=0; $i<$ttl; $i++){
 execute some code
 clear output cache

}

我想在每次循环迭代时清除服务器缓存,实际上我正在获取解析它的内容,然后继续进行下一个内容进行解析。

目前我的脚本会出现内存不足错误,我希望通过清除服务器缓存来获取它,但是如何?

3 个答案:

答案 0 :(得分:0)

使用unset($ unset_parm)函数.. 如果db对象使用$ db_obj-&gt; free_result();

答案 1 :(得分:0)

我不确定它会解决您的问题,但您正在寻找的是手册......

使用ob_start()启动缓冲区:
http://fr2.php.net/ob_start

使用ob_end_flush()发送和结束缓冲区:
http://www.php.net/manual/fr/function.ob-end-flush.php

您可以使用ob_flush()代替它来结束缓冲输出:
http://www.php.net/manual/fr/function.ob-flush.php

我建议在...之前优化您的脚本。

答案 2 :(得分:0)

从技术上讲,你可以用PHP做的是调用flush()(或ob_flush())来刷新输出缓冲区。但这并不一定会使输出转到客户端,因为Web服务器也可以缓冲输出(同样在压缩模块等情况下)。

您可能还需要检查php.ini output_buffering选项。在链接的flush函数链接中,注释中有一些有趣的注意事项,请查看它们!