我正在尝试阅读大文件,让我们在我的系统中使用cron作业说插图文件或photoshop文件。 文件大小从20 mb到300 mb
不等我一直在使用某些功能,但在阅读时它会在中间打破。所以我想有一个新意见。
这些功能的数量
最有效的
如果有超过两个cron作业,它是否会影响所有服务器性能。
请分享最佳实践代码。
提前致谢
答案 0 :(得分:3)
使用cURL。不推荐使用文件函数,而是使用cURL来打开远程文件。它不仅faster,而且更可靠 1 (您不太可能遇到超时)。
如果您的脚本超时或内存不足,您需要增加执行时间和内存限制(max_execution_time
和memory_limit
)。
其他说明:
readfile()
读取文件并将其打印到输出缓冲区;这跟file_get_contents()
不一样。--with-curlwrappers
编译curl,那么当您执行file_get_contents()
时,它将使用cURL而不是fopen()
函数。1 需要引文。
答案 1 :(得分:0)
如果文件太大,你需要拆分这两个任务。 首先你用wget下载文件,一旦你有你的文件,你用PHP处理它。 这样你就不太可能遇到超时问题。
如果您不知道要下载哪个文件,因为它是来自某种类型的php的变量,您可以将所需文件的名称写入文件作为您工作的第一步
然后通过--input-file = file将其传递给wget作为第二步
然后使用您的php程序将其作为第三步也是最后一步处理
答案 2 :(得分:0)
DirectIO是一种低级扩展,绕过操作系统直接进入硬盘,因此效率最高。
http://php.net/manual/en/ref.dio.php
请注意,从PHP 5.1.0起,它不再与PHP捆绑在一起。此外,如果您的脚本在操作过程中中断,请检查您的max_execution_time和max_memory。