[PHP] php远程下载 获取远程图片 实现下载远程图片保存到本地 →→→→→进入此内容的聊天室

来自 , 2019-04-30, 写在 PHP, 查看 141 次.
URL http://www.code666.cn/view/c02f9de3
  1. /*
  2. *功能:php完美实现下载远程图片保存到本地
  3. *参数:文件url,保存文件目录,保存文件名称,使用的下载方式
  4. *当保存文件名称为空时则使用远程文件原来的名称
  5. */
  6. function getImage($url,$save_dir='',$filename='',$type=0){
  7.     if(trim($url)==''){
  8.                 return array('file_name'=>'','save_path'=>'','error'=>1);
  9.         }
  10.         if(trim($save_dir)==''){
  11.                 $save_dir='./';
  12.         }
  13.     if(trim($filename)==''){//保存文件名
  14.         $ext=strrchr($url,'.');
  15.         if($ext!='.gif'&&$ext!='.jpg'){
  16.                         return array('file_name'=>'','save_path'=>'','error'=>3);
  17.                 }
  18.         $filename=time().$ext;
  19.     }
  20.         if(0!==strrpos($save_dir,'/')){
  21.                 $save_dir.='/';
  22.         }
  23.         //创建保存目录
  24.         if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
  25.                 return array('file_name'=>'','save_path'=>'','error'=>5);
  26.         }
  27.     //获取远程文件所采用的方法
  28.     if($type){
  29.                 $ch=curl_init();
  30.                 $timeout=5;
  31.                 curl_setopt($ch,CURLOPT_URL,$url);
  32.                 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  33.                 curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  34.                 $img=curl_exec($ch);
  35.                 curl_close($ch);
  36.     }else{
  37.             ob_start();
  38.             readfile($url);
  39.             $img=ob_get_contents();
  40.             ob_end_clean();
  41.     }
  42.     //$size=strlen($img);
  43.     //文件大小
  44.     $fp2=@fopen($save_dir.$filename,'a');
  45.     fwrite($fp2,$img);
  46.     fclose($fp2);
  47.         unset($img,$url);
  48.     return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
  49. }

回复 "php远程下载 获取远程图片 实现下载远程图片保存到本地"

这儿你可以回复上面这条便签

captcha