php判断远程图片是否存在并保存在本地

  作者: thtomatic  分类: php笔记   评论: [ 0 ] 条  浏览: [ 1184 ] 次

    今天公司有个业务是把原先商户在我们平台提交的身份证资料down下来审核(原先就没审核过),代码如下

    判断远程是否有图片:

    

function is_files($url)
{
    if(file_get_contents($url,0,null,0,1))
    return true;
    else
    return false;
}
down下远程的图片



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'&&$ext!='.png'&&$ext!='.jpeg'){
                return array('file_name'=>'','save_path'=>'','error'=>3);
            }
                $filename=time().rand(0,10000).$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);
        }

使用如下:

getImage(远程图片路径,本地存储路径,本地存储照片的名称,1);


需要注意的就是如果使用mkdir创建文件夹使用中文名称的话得需要规范下编码,不规范的话会出现乱码,保存图片的名称如果是中文也要规范编码

规范编码代码如下:

iconv('utf-8', 'gbk', 文件名称);



版权所有:《thtomatic》 => 《php判断远程图片是否存在并保存在本地
本文地址:https://ask.mykeji.net/phpnotes/168.html
除非注明,文章均为 《简单记录》 原创,欢迎转载!转载请注明本文地址,谢谢。


上一篇: PHP的加密与解密
下一篇: 同步备份软件

发表评论:

    21.91ms