PHP有很多文件目錄函數,可以COPY文件,刪除文件。但有的時候因為Copy的文件太大,也會導致程序出錯。
<?php header("content-type:text/html;charset=utf-8"); //方案一: $rs = file_get_contents("1.flv"); file_put_contents("2.flv",$rs); ?>
譬如這個文件1.flv是個視頻文件的話,他的內存就會占用很多,都會有個幾百兆,一般都會超過php默認的內存。php默認的內存在php.ini裡。
我的這個默認的是128M,當然這個可以自己設置,ini_set(‘memory_limit’,’128M’); 重置php可以使用的內存大小為128M,但是一般在遠程主機上是不能修改php.ini文件的,只能通過程序設置。注:在safe_mode(安全模式)下,ini_set失效.
那這個時候我們可以用這段程序。
<?php header("content-type:text/html;charset=utf-8"); //方案二: $src = fopen("1.flv","r"); $des = fopen("2.flv","w"); while($str = fread($src,4096)){ fwrite($des,$str); } fclose($des); fclose($src); echo "-------"; ?>
方案二我們用的是一個循環,每次只寫入4M。這樣就不會發生內存溢出的問題了。
URL:http://www.bianceng.cn/webkf/PHP/201410/45961.htm