中山php|最优网络中山做网站 中山php建站

最优良人

2011/08/18 at 14:38

php获取远程图片,下载到本地-readfile,file_get_contents函数

php获取远程图片的原理是使用readfile函数读入一个远程文件的stream,然后写入一个文件生成本地图片

注:也可以用file_get_contents函数,二者的区别是readfile直接把文件stream输出,而后者赋给变量。

以下自定义函数可以实现远程图片获取,并自动下载为本地文件:

<?php
//
// Function: 获取远程图片并把它保存到本地
//
//
// 确定您有把文件写入本地服务器的权限
//
//
// 变量说明:
// $url 是远程图片的完整URL地址,不能为空。
// $filename 是可选变量: 如果为空,本地文件名将基于时间和日期
// 自动生成.
function GrabImage($url,$filename="") {
if($url==""):return false;endif;
if($filename=="") {
$ext=strrchr($url,".");
if($ext!=".gif" && $ext!=".jpg"):return false;endif;
$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("/Article/UploadFiles/201003/20100313135251414.jpg","");
if($img):echo '<pre><img src="'.$img.'"></pre>';
else:echo "false";
endif;
?>

标签:
-