function grabImage($url, $filename = '') {
if($url == '') {
return false; //如果 $url 为空则返回 false;
}
if($filename == '') {
$filename = time().".jpg"; //以时间戳另起名
}
//开始捕获
ob_start();
readfile($url);
$img_data = ob_get_contents();
ob_end_clean();
$size = strlen($img_data);
$local_file = fopen($filename , 'a');
fwrite($local_file, $img_data);
fclose($local_file);
return $filename;
}
$url="http://mmbiz.qpic.cn/mmbiz/LTB3GPR/0";
if($url == '') {
return false; //如果 $url 为空则返回 false;
}
if($filename == '') {
$filename = time().".jpg"; //以时间戳另起名
}
//开始捕获
ob_start();
readfile($url);
$img_data = ob_get_contents();
ob_end_clean();
$size = strlen($img_data);
$local_file = fopen($filename , 'a');
fwrite($local_file, $img_data);
fclose($local_file);
return $filename;
}
$url="http://mmbiz.qpic.cn/mmbiz/LTB3GPR/0";
grabImage($url);
//或者直接使用下面的copy函数
// copy($url,"weixin1.jpg");
总结:两种方式获取远程图片并保存在本地的速度都挺慢的。
可以考虑使用以下这种方法(速度非常给力喔):
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
$filename=time().".jpg";
$fp2=@fopen($filename,'a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);