使用 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') 暫時調高限制,但在安全模式或共享主機可能失效。