curl init php5.3,php7.3-利用curl_init函数下载图片保存到本地

76cc32e28a5dc3a08fbfdad67778a900.png

前几天写过一文章,介绍通过获取网页html代码,然后正则出图片的链接地址的文章php7.3-正则提取网页中所有图片的url地址,文章只介绍了怎么提取图片的URL地址,今天就再写一下获取到图片URL地址后怎么下载图片保存到本地过程。

55754f03967020072fe247a97f20f086.png

我搜索了下我的博客,发现原来写过一类似文章,只是介绍的比较简单php7.3.2-分享一个远程下载(采集)图片的函数,咱今天就先忽略此文章,详细的介绍下远程下载图片保存到本地的过程。

我们获取到一个图片的URL后,我们要先分析下这个图片的格式,也就是什么格式的图片,长见图片格式有,jpg、gif、png等。在正则提取网页图片的URL的地址的文章中,我们在最后的数组中,可以直接获取到每一张图片的格式,今天我们拿一张图片的URL做例子,那只有通过正则来获取这个URL链接的图片格式;

提取图片的格式;

$url='https://www.rsyncd.net/wp-content/themes/dux/img/logo.png';

preg_match('/https:\/\/blog\.qzze\.com\/wp-content\/themes\/dux\/img\/((.*?)(\.(jpg|gif|png)?))/i',$url,$image);

print_r($image);

//打印结果

Array

(

[0] => https://www.rsyncd.net/wp-content/themes/dux/img/logo.png

[1] => logo.png

[2] => logo

[3] => .png

[4] => png

)

上方代码,我们提取到了图片的名称,图片的格式,方便我们下载图片时使用。

下面是完整的代码,其实和远程获取html基本上一样,只不过最后要把数据保存成图片罢了,图片名称可以写成时间,方便区分图片,当然也可以直接定义成字符串,$image[3]是网页后缀名称。下面是完整的代码

$url='https://www.rsyncd.net/wp-content/themes/dux/img/logo.png';

preg_match('/https:\/\/blog\.qzze\.com\/wp-content\/themes\/dux\/img\/((.*?)(\.(jpg|gif|png)?))/i',$url,$image);

//print_r($image);

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 0);

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$file_content = curl_exec($ch);

curl_close($ch);

//保存到本地的图片名称

$file=date('YmdHis');

//图片保存路径

$images_file='images/'.$file.$image[3];

$downloaded_file = fopen($images_file, 'w');

fwrite($downloaded_file, $file_content);

fclose($downloaded_file);

下载图片的关键是后缀一定不要搞错了,大家有什么不明白的,可以在下面留言给我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值