[PHP语言] php抓取远程图片到本地保存的方法

[复制链接]
查看2749 | 回复9 | 2020-10-31 15:00:18 | 显示全部楼层 |阅读模式

实现思路:

首先判断图片路径是否为空,如果不为空则进一步执行,接着获取图片信息大小、图片路径后缀名,然后计算图片源码大小,每次实现写入1k,直到获取到全部数据即可。

学习视频推荐:php视频教程

示例演示:

/**
 * PHP将网页上的图片攫取到本地存储
 * @param $imgUrl  图片url地址
 * @param string $saveDir 本地存储路径 默认存储在当前路径
 * @param null $fileName 图片存储到本地的文件名
 * @return mix
 */
function crabImage($imgUrl, $saveDir='./', $fileName=null){
	if(empty($imgUrl)){
		return false;
	}
	//获取图片信息大小
	$imgSize = getImageSize($imgUrl);
	if(!in_array($imgSize['mime'],array('image/jpg', 'image/gif', 'image/png', 'image/jpeg'),true)){
		return false;
	}
	//获取后缀名
	$_mime = explode('/', $imgSize['mime']);
	$_ext = '.'.end($_mime);
	if(empty($fileName)){  //生成唯一的文件名
		$fileName = uniqid(time(),true).$_ext;
	}
	//开始攫取
	ob_start();
	readfile($imgUrl);
	$imgInfo = ob_get_contents();
	ob_end_clean();
	if(!file_exists($saveDir)){
		mkdir($saveDir,0777,true);
	}
	$fp = fopen($saveDir.$fileName, 'a');
	$imgLen = strlen($imgInfo);    //计算图片源码大小
	$_inx = 1024;   //每次写入1k
	$_time = ceil($imgLen/$_inx);
	for($i=0; $i<$_time; $i++){
		fwrite($fp,substr($imgInfo, $i*$_inx, $_inx));
	}
	fclose($fp);
	return array('file_name'=>$fileName,'save_path'=>$saveDir.$fileName);
}
$url = 'https://mmbiz.qlogo.cn/mmbiz/
7WQtTI9h56hgvOH8J0Xp5v97cDNOxf94vq0NdNOhZmb2ZiaJLfwd2U8gNoEvTQXdWlRPOuibkkSebexmR2epE0pQ/0?wx_fmt=gif';
//$url = 'http://www.phpernote.com/images/logo.gif';
//$url = 'http://avatar.csdn.net/5/3/6/1_u014236259.jpg';
var_dump( crabImage($url) );

更多相关文章教程推荐:php教程

以上就是php抓取远程图片到本地保存的方法的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:php 抓取 远程图片 本地 保存 方法
  • 本文原创发布爱上源码网,转载请注明出处,感谢您的尊重!
    • 上一篇:php获取数组中最后一个元素的方法
    • 下一篇:php如何删除字符串中的重复数字或字符

    相关文章

    相关视频

    • php中对static关键字的理解
    • PHP如何读取Excel内的图片(附代码)
    • php如何安装swoole扩展
    • php如何获取url的扩展名
    • php抓取远程图片到本地保存的方法
    • 《PHP获取图片的多种方法》2018.9.26
    • 《PHP解决字体乱码以及显示图片乱码问题》2018.10.15
    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn! 本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
    回复

    使用道具 举报

    郭光庆 | 2021-1-4 07:46:06 | 显示全部楼层
    谢谢楼主分享的资源,爱了~~~
    回复

    使用道具 举报

    清荼蘼荼iq | 2021-2-10 12:14:29 | 显示全部楼层
    厉害了,悟空源码资源多教程多!
    回复

    使用道具 举报

    温润而哲 | 2021-10-30 09:39:42 | 显示全部楼层
    没积分哈,谁来帮帮我啊
    回复

    使用道具 举报

    gui57 | 2022-1-17 10:04:36 | 显示全部楼层
    厉害了,悟空源码资源多教程多!
    回复

    使用道具 举报

    国留局劳 | 2022-4-2 22:09:45 | 显示全部楼层
    站长真良心,这么大的资源站都是免费下载
    回复

    使用道具 举报

    天使粉粉魏 | 2022-6-29 06:36:14 | 显示全部楼层
    感谢悟空源码分享精品资源!
    回复

    使用道具 举报

    萍381 | 2022-7-18 02:09:08 | 显示全部楼层
    我是来白嫖悟空源码的资源的!
    回复

    使用道具 举报

    945坏男人 | 2023-1-28 01:34:15 | 显示全部楼层
    6666悟空源码资源多!
    回复

    使用道具 举报

    八块田确 | 2023-2-12 11:30:12 | 显示全部楼层
    6666悟空源码资源多!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则