【发布时间】:2011-06-15 10:38:55
【问题描述】:
我有一个偶尔需要将大文件写入磁盘的 PHP 脚本。使用file_put_contents(),如果文件足够大(在本例中约为 2 MB),PHP 脚本会耗尽内存(PHP 致命错误:允许的内存大小为 ######## 字节已用尽)。我知道我可以只增加内存限制,但这对我来说似乎不是一个完整的解决方案——必须有更好的方法,对吧?
用 PHP 将大文件写入磁盘的最佳方法是什么?
【问题讨论】:
-
数据的来源是什么?此外,大多数 PHP 配置应该能够毫无问题地处理 2MB。您的内存限制可能远低于此限制。
-
文件从何而来?如果它已经存在于磁盘上,那么
copy()将是最合适的。 -
在这种情况下,我使用 curl 从远程服务器获取文件。所以,我把它放在一个变量中。
-
跳过 curl,使用
copy("http://example.com/file", "/tmp/local.txt") -
@mario:这很容易,但我正在复制多个文件,我喜欢我可以使用 curl_multi_* 东西同时运行它们