首頁 >php教程 >php手册 >php 远程下载图片到本地,

php 远程下载图片到本地,

WBOY
WBOY原創
2016-06-13 08:47:151084瀏覽

php 远程下载图片到本地,

  大家好,从今天开始,小弟开始写写博客,把自己在工作中碰到的问题的解决方法纪录下来,方便以后查找,也给予别人方便,小弟不才,第一次写博客,有什么不足之处请指出,谢谢!

  今天纪录的是怎么通过PHP远程把图片下载到本地,废话不多说,上代码。

<?php<br />/*<br />*功能:php完美实现下载远程图片保存到本地<br />*参数:文件url,保存文件目录,保存文件名称,使用的下载方式<br />*当保存文件名称为空时则使用远程文件原来的名称<br />*/<br />function getImage($url,$save_dir='',$filename='',$type=0){<br />    if(trim($url)==''){<br />        return array('file_name'=>'','save_path'=>'','error'=>1);<br />    }<br />    if(trim($save_dir)==''){<br />        $save_dir='./';<br />    }<br />    if(trim($filename)==''){//保存文件名<br />        $ext=strrchr($url,'.');<br />        if($ext!='.gif'&&$ext!='.jpg'){<br />            return array('file_name'=>'','save_path'=>'','error'=>3);<br />        }<br />        $filename=time().$ext;<br />    }<br />    if(0!==strrpos($save_dir,'/')){<br />        $save_dir.='/';<br />    }<br />    //创建保存目录<br />    if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){<br />        return array('file_name'=>'','save_path'=>'','error'=>5);<br />    }<br />    //获取远程文件所采用的方法<br />    if($type){<br />        $ch=curl_init();<br />        $timeout=5;<br />        curl_setopt($ch,CURLOPT_URL,$url);<br />        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);<br />        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);<br />        $img=curl_exec($ch);<br />        curl_close($ch);<br />    }else{<br />        ob_start();<br />        readfile($url);<br />        $img=ob_get_contents();<br />        ob_end_clean();<br />    }<br />    //$size=strlen($img);<br />    //文件大小<br />    $fp2=@fopen($save_dir.$filename,'a');<br />    fwrite($fp2,$img);<br />    fclose($fp2);<br />    unset($img,$url);<br />    return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);<br />}<br />?><br />然后直接调用函数就可以把图片下载到本地
$img = getImage("$url","images/");
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn