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> [email protected]($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/");