php抓取遠端內容並儲存到本地
阿新 • • 發佈:2019-01-07
<?php function getImage($url,$save_dir='',$filename='',$type=1){ if(trim($url)==''){ return array('file_name'=>'', 'save_path'=>'', 'error'=>1); } if(trim($save_dir)==''){ $save_dir='./'; } if(trim($filename)==''){//儲存檔名 $ext=strstr($url,'.');//strchr 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_HEADER,0); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeOut); $img=curl_exec($ch); curl_close($ch); }else{ ob_start(); readfile($url); $img=ob_get_contents(); ob_clean(); } //檔案大小 $fp2[email protected]fopen($save_dir.$filename,'a'); fwrite($fp2,$img); fclose($fp2); unset($img,$url); return array('file_name'=>$filename, 'save_path'=>$save_dir, 'error'=>0); }