php下载远程文件方法~
直接上代码:
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; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步