直接上代碼:
getFile("http://easyread.ph.126.net/N8gDl6ayo5wLgKbgT21NZQ==/7917056565549478184.jpg"); /** * php實現下載遠程圖片保存到本地 ** * $url 圖片所在地址 * $path 保存圖片的路徑 * $filename 圖片自定義命名 * $type 使用什么方式下載 * 0:curl方式,1:readfile方式,2file_get_contents方式 * * return 文件名 */ function getFile($url,$path='',$filename='',$type=0){ if($url==''){return false;} //獲取遠程文件數據 if($type===0){ $ch=curl_init(); $timeout=5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);//最長執行時間 curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);//最長等待時間 $img=curl_exec($ch); curl_close($ch); } if($type===1){ ob_start(); readfile($url); $img=ob_get_contents(); ob_end_clean(); } if($type===2){ $img=file_get_contents($url); } //判斷下載的數據 是否為空 下載超時問題 if(empty($img)){ throw new \Exception("下載錯誤,無法獲取下載文件!"); } //沒有指定路徑則默認當前路徑 if($path===''){ $path="./"; } //如果命名為空 if($filename===""){ $filename=md5($img); } //獲取后綴名 $ext=substr($url, strrpos($url, '.')); if($ext && strlen($ext)<5){ $filename.=$ext; } //防止"/"沒有添加 $path=rtrim($path,"/")."/"; //var_dump($path.$filename);die(); $fp2=@fopen($path.$filename,'a'); fwrite($fp2,$img); fclose($fp2); //echo "finish"; return $filename; }