在 PHP 中读取超大文件
尽管使用 PHP 的 fopen 读取中等大小(6 MB)的文件时遇到困难,但默认设置应该足够了。在深入研究专门的解决方案之前,调查不太明显的潜在错误至关重要。
考虑超时和内存限制:
检查脚本的超时配置。超过默认持续时间(通常大约 30 秒)可能会导致文件 I/O 期间中断。此外,验证脚本的内存使用情况,以排除任何指示内存限制的警告。将大文件读入数组可能需要增加内存分配。
使用 fget 进行优化:
如果之前的诊断没有提供任何线索,请探索逐行读取文件的可能性-line 使用 fgets 函数。这种方法在增量处理数据时会产生更小的内存占用:
$handle = fopen("/tmp/uploadfile.txt", "r") or die("Couldn't get handle"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); // Process buffer here.. } fclose($handle); }
排除其他错误:
错误消息“PHP 似乎不会抛出异常”错误,它只是返回 false”可能表示各种问题:
以上是PHP如何高效读取超大文件?的详细内容。更多信息请关注PHP中文网其他相关文章!