首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 大檔案複製避免記憶體溢出的解決方案

     編輯:PHP 綜合知識

使用 file_get_contents / file_put_contents 處理大檔案會一次載入整個檔案到記憶體,易超過 memory_limit。解決方法是分塊讀寫。

問題示範

<?php
$rs = file_get_contents("1.flv"); // 若檔案 200MB,超過預設 128M 限制
file_put_contents("2.flv",$rs);
?>

解決方案:分塊串流複製

<?php
$src = fopen("1.flv","r");
$des = fopen("2.flv","w");
while($str = fread($src,4096)){ // 每次 4KB
    fwrite($des,$str);
}
fclose($des);
fclose($src);
echo "完成";
?>

補充

  • 可用 ini_set('memory_limit','256M') 暫時調高限制,但在安全模式或共享主機可能失效。
  • 分塊大小可依情況調整(如 8192、16384)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved