>  기사  >  백엔드 개발  >  원격 이미지 다운로드를 받고 이를 PHP로 로컬에 저장하는 방법

원격 이미지 다운로드를 받고 이를 PHP로 로컬에 저장하는 방법

小云云
小云云원래의
2017-11-27 09:33:032621검색

PHP를 사용하여 원격 이미지를 얻고 원격 이미지를 로컬로 다운로드하고 저장하는 함수 코드를 공유하세요. 이 작은 트릭이 도움이 되기를 바랍니다.

/*
*功能:php完美实现下载远程图片保存到本地
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url,$save_dir='',$filename='',$type=0){
    if(trim($url)==''){
return array('file_name'=>'','save_path'=>'','error'=>1);
}
if(trim($save_dir)==''){
$save_dir='./';
}
    if(trim($filename)==''){//保存文件名
        $ext=strrchr($url,'.');
        if($ext!='.gif'&&$ext!='.jpg'){
return array('file_name'=>'','save_path'=>'','error'=>3);
}
        $filename=time().$ext;
    }
if(0!==strrpos($save_dir,'/')){
$save_dir.='/';
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return array('file_name'=>'','save_path'=>'','error'=>5);
}
    //获取远程文件所采用的方法 
    if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
    }else{
    ob_start(); 
    readfile($url);
    $img=ob_get_contents(); 
    ob_end_clean(); 
    }
    //$size=strlen($img);
    //文件大小 
    $fp2=@fopen($save_dir.$filename,'a');
    fwrite($fp2,$img);
    fclose($fp2);
unset($img,$url);
    return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}

위 코드는 PHP로 원격 이미지를 가져와 로컬에 다운로드하고 저장하는 방법입니다. 모두에게 유용할 것입니다.

관련 권장사항:

php는 원격 이미지의 크기와 크기를 얻는 효율적인 방법을 구현합니다.

php는 원격 이미지를 로컬 개발 예제로 다운로드하여 공유합니다.

php는 원격 이미지 다운로드를 구현하고 로컬에 저장합니다.

위 내용은 원격 이미지 다운로드를 받고 이를 PHP로 로컬에 저장하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.