1. 程式人生 > >php抓取遠端內容並儲存到本地

php抓取遠端內容並儲存到本地

<?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); }