php如何下载远程图片呢??
php远程下载图片经常用到,如何实现呢??
原理:通过curl请求url,将请求返回的文件流 写入到指定的路径中
<?php /** * Created by PhpStorm. * User: 萧逸 * Date: 2017/6/20 * Time: 10:11 * * 在使用 PHP 做简单的爬虫的时候,我们经常会遇到需要下载远程图片的需求,所以下面来简单实现这个需求。 */ //比如我们有下面这两张图片: $images = [ ‘https://dn-laravist.qbox.me/2015-09-22_00-17-06j.png‘, ‘https://dn-laravist.qbox.me/2015-09-23_00-58-03j.png‘ ]; class Spider { //定义下载图片 用于发送url public function downloadImage($url, $path = ‘images/‘) { $ch = curl_init(); //以url的形式 进行请求 curl_setopt($ch, CURLOPT_URL, $url); //以文件流的形式 进行返回 不直接输出到浏览器 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //浏览器发起请求 超时设置 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file = curl_exec($ch); curl_close($ch); //返回文件路径的信息 $this->saveAsImage($url,$file,$path); } //保存图片 private function saveAsImage($url, $file, $path) { //返回文件的基本信息 $filename = pathinfo($url, PATHINFO_BASENAME); //打开文件 并且写入到路径中 $resource = fopen($path . $filename, ‘a‘); fwrite($resource, $file); fclose($resource); } } //封装成类之后,我们可以这样调用代码来下载图片:这样,对付基本的远程图片下载就OK了。 $spider = new Spider(); foreach ($images as $url) { $spider->downloadImage($url); }
相关推荐
zyyjay 2020-11-09
xuebingnan 2020-11-05
samtrue 2020-11-22
stefan0 2020-11-22
yifangs 2020-10-13
songshijiazuaa 2020-09-24
hebiwtc 2020-09-18
天步 2020-09-17
83911535 2020-11-13
whatsyourname 2020-11-13
zhouyuqi 2020-11-10
Noneyes 2020-11-10
mathchao 2020-10-28
王志龙 2020-10-28
wwwsurfphpseocom 2020-10-28
diskingchuan 2020-10-23
savorTheFlavor 2020-10-23