获取远程图片并保存到本地的方法

本文介绍了一种通过PHP脚本从远程服务器获取图片并将其保存到本地的方法。该方法适用于数据同步及内容图片采集场景。文章提供了具体的实现代码,包括如何处理URL、图片格式验证、文件名生成等细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取远程图片并保存到本地的方法,适用于数据同步和采集内容图片功能

	function GrabImage($url, $filename = "") { 
	 if ($url == ""):return false; 
	 endif; 
	 //如果$url地址为空,直接退出 
	 if ($filename == "") { 
	 //如果没有指定新的文件名 
	 $ext = strrchr($url, "."); 
	 //得到$url的图片格式 
	 if ($ext != ".gif" && $ext != ".jpg"):return false; 
	 endif; 
	 //如果图片格式不为.gif或者.jpg,直接退出 
	 $filename = date("dMYHis") . $ext; 
	 //用天月面时分秒来命名新的文件名 
	 }  
	 ob_start();//打开输出 
	 readfile($url);//输出图片文件 
	 $img = ob_get_contents();//得到浏览器输出 
	 ob_end_clean();//清除输出并关闭 
	 $size = strlen($img);//得到图片大小 
	 $fp2 = @fopen($filename, "a"); 
	 fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名 
	 fclose($fp2); 
	 return $filename;//返回新的文件名 
	}
	
	//调用部分
	  
	$img = GrabImage("http://imgsrc.baidu.com/baike/abpic/item/6648d73db0edd1e89f3d62f7.jpg", ""); 
	if ($img):echo '<pre><img src="' . $img . '"></pre>'; 
	//如果返回值为真,这显示已经采集到服务器上的图片 
	else:echo "false"; 
	endif; 
	//否则,输出采集失败 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值