您的位置:首页 > 编程语言 > PHP开发

php远程下载一张图片(附说明)

2012-07-30 00:00 441 查看
php远程下载一张图片关键应用了,ob_start()这个强大的函数和文件的基本操作,我在以前的php教程中也介绍过php缓冲技术 ,下面附上php代码及说明:

<?php
header("Content-type:text/html ; charset=utf-8");
if (!empty($_POST['submit'])){
	$url = $_POST['url'];
	$img = grabImage($url,"");
	echo $img;
	echo '<pre><img src="'.$img.'"></pre>';
}
//下载图片函数
function grabImage($url,$filename=""){
	if ($url == "") return false;
    if($filename == "") {
		$ext=strrchr($url,"."); //获取扩展名
		$ext_arr = array(".gif",".png",".jpg",".bmp");
		//判断扩展名是否为图片
		if (!in_array($ext, $ext_arr)) return false;
		//我就随便将图片文件名保存为时间戳了,你可自行修改
		$filename = time().$ext;
	}
	ob_start(); //打开浏览器的缓冲区
	readfile($url); //将图片读入缓冲区
	$img = ob_get_contents(); //获取缓冲区的内容复制给变量$img
	ob_end_clean(); //关闭并清空缓冲
	$fp = @fopen($filename,"a"); //将文件绑定到流
	fwrite($fp,$img); //写入文件
	fclose($fp); //关闭文件之争
	return $filename;
}
?>
<form method="POST" action="">
<input type="text" name="url" size=50 />
<input type="submit" name="submit" value="下载" />
</form>



运行结果如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: