PHP下载远程文件

来源:互联网 发布:linux awk 指定匹配列 编辑:程序博客网 时间:2024/05/22 17:18
[php] view plaincopyprint?
  1. /** 
  2.  * PHP下载远程文件到本地原理:通过PHP函数,先读取远程文件,然后在本地创建一个新的空文件, 
  3.  * 然后将已读取的远程文件的内容写入到新创建的文件当中,这样就可以达到远程文件下载功能 
  4.  * @author JackyLi 
  5.  * 
  6.  */  
  7. class DownloadFile {  
  8.     /** 
  9.      * @param string $file  远程需要下载的文件 
  10.      */  
  11.     public static function get_img_file($file) {  
  12.         $targetDir = sys_get_temp_dir () . DIRECTORY_SEPARATOR . "plupload" . DIRECTORY_SEPARATOR;  
  13.         if (! file_exists ( $targetDir )) { //检测临时下载目录是否存在,不存在,则新建一个  
  14.             @mkdir ( $targetDir );  
  15.         }  
  16.         if (! $file) {  
  17.             return false;  
  18.         }  
  19.         $ext = strrchr ( $file"." ); //取扩展名  
  20.         $filename = $targetDir . '/' . basename ( $file$ext ) . date ( "YmdHis" ) . $ext//需要保存的文件名称(带完整路径)  
  21.         ob_start (); //开启output buffering  
  22.         readfile ( $file ); //将文件读取buffering中  
  23.         $img = ob_get_contents (); //将buffering中的数据保存到变量当中,方便后续操作  
  24.         ob_end_clean (); //关闭output buffering  
  25.         $fp2 = @fopen ( $filename"a" ); //打开目标文件(马上被写入数据的文件)  
  26.         fwrite ( $fp2$img ); //写入数据到文件当中  
  27.         fclose ( $fp2 ); //关闭文件句柄  
  28.         //上面读取文件内容,可以直接用下面两行代替  
  29.         //        $file = file_get_contents($file);   
  30.         //        file_put_contents($filename,$file);       
  31.         return true;  
  32.     }  
  33. }  
  34.   
  35. $download = new DownloadFile ();  
  36. $download->get_img_file ( 'http://news.sina.com.cn/c/2011-09-16/021323162600.shtml' );  
原创粉丝点击