【发布时间】:2014-06-08 04:50:51
【问题描述】:
我有一个脚本,echo 输出 php 脚本中的内容并生成一个非常大的文件,例如100MB
目前我使用以下方式捕获输出并写入另一个文件
ob_start();
require_once 'dynamic_data.php'; // echo 100MB data
$data = ob_get_clean();
file_put_contents($path, $data);
有什么简单的方法可以重写上面的程序(最好不要碰dynamic_data.php,因为它很难重构),这样它就可以直接将输出流式传输到文件而不将内容保存在内存中?
【问题讨论】:
-
你不能直接在
dymanic_data.php中添加文件操作而不是回显和重新捕获输出而不回显吗?这样做有什么限制吗? -
因为使用 PHP 作为模板语言而不是直接打印到文件更容易循环/回显。此外,我可以将相同的脚本重复用于 Web 输出。
标签: php ob-start ob-get-contents