讀取大檔案時解決PHP 檔案大小限制
在PHP 中,讀取大檔案時遇到問題可能會令人沮喪,尤其是在使用fopen 時開啟超過中等大小的檔案。雖然使用 -D_FILE_OFFSET_BITS=64 標誌重新編譯 PHP 確實可以將檔案大小限制擴展到 20 GB 以上,但對於小至 6 MB 的檔案則沒有必要。
開啟大檔案遇到困難時,有幾個因素需要考慮:
超時設定:
驗證腳本的逾時設定。預設值通常為 30 秒左右,如果讀取檔案的時間超過此值,可能會觸發逾時錯誤。
記憶體限制:
PHP 也有嘗試將大檔案讀入數組時可能會超出的記憶體限制。建議監控錯誤日誌中的記憶體警告。
使用fgets 增量讀取:
如果超時或內存問題不明顯,請考慮使用fgets 來讀取逐行處理文件,按順序處理每一行。這種方法對於非常大的文件特別有效。
路徑驗證:
如果 fopen 傳回 false 而沒有錯誤訊息,則為 $rawfile 指定的路徑可能會相對於腳本執行的位置不正確。嘗試為檔案名稱提供絕對路徑。
其他提示:
以上是讀取大檔案時如何克服PHP檔案大小限制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!