在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中文網其他相關文章!