在PHP中获取2GB文件?

时间:2010-07-21 15:21:08

标签: php download large-files

我需要通过PHP下载一个非常大的文件,上次我通过http手动完成它的大小为2.2gb并花了几个小时下载。我想以某种方式自动下载。

以前我用过

file_put_contents($filename, file_get_contents($url));

这样的大文件会好吗?我想在下载后解压文件,然后对tarball中的各种文件进行分析。

2 个答案:

答案 0 :(得分:5)

file_get_contents()对于小文件很方便,但它完全不适合大文件。由于它将整个文件加载到内存中,因此每个脚本实例需要2GB的RAM!

你应该使用旧的fopen()+ fread()代替。

此外,不要使用像wget这样的第三方下载工具(在许多Linux系统中默认安装)并创建一个cron任务来运行它。这可能是自动化每日下载的最佳方式。

答案 1 :(得分:0)

您必须调整php.ini以接受上传中的较大文件,并调整内存使用限制。