將檔案從URL 下載到伺服器而不會出現記憶體問題
從URL 將檔案下載到伺服器是一項常見任務,但它可以成為由於記憶體限制,處理大檔案時會出現問題。本題探討了該問題的解決方案。
問題:
下載檔案的傳統方法,例如 file_get_contents() 和file_put_contents(),可能會遇到記憶體問題處理大型檔案時,導致下載
解決方案:
為了避免記憶體問題,PHP 提供了另一種方法,使用串流資源作為file_put_contents() 的資料參數。此方法允許在下載檔案時將檔案直接寫入磁碟,從而防止記憶體耗盡。
程式碼:
file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));
說明:
透過將串流資源傳遞給file_put_contents(),利用PHP 流複製機制將資料直接從來源URL 傳輸到目標檔案。這樣就不需要將整個檔案載入到記憶體中,解決了記憶體耗盡的問題。
以上是如何將大檔案從 URL 下載到伺服器而不出現記憶體問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!