php 保存远程图片到本地
<?php header('Content-Type:image/jpg'); echo file_get_contents("http://www.baidu.com/img/baidu_logo.gif"); ?>
第一种: 精确型
<?php // 变量说明: // $url 是远程图片的完整URL地址,不能为空。 // $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 // 自动生成. function get_photo($url,$filename='',$savefile='test/') { $imgArr = array('gif','bmp','png','ico','jpg','jepg'); if(!$url) return false; if(!$filename) { $ext=strtolower(end(explode('.',$url))); if(!in_array($ext,$imgArr)) return false; $filename=date("dMYHis").'.'.$ext; } if(!is_dir($savefile)) mkdir($savefile, 0777); if(!is_readable($savefile)) chmod($savefile, 0777); $filename = $savefile.$filename; 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=get_photo("http://www.baidu.com/img/baidu_logo.gif"); echo $img ? '' : "false";
第二种:从文章中提取图片,并保存至本地
function getImg($str){ $str = stripslashes($str); $pattern = "/]*src\=\"(([^>]*)(jpg|gif|png|bmp|jpeg))\"/i"; //获取所有图片标签的全部信息 preg_match_all($pattern, $str, $matches); return $matches[1]; //$matches[1]中就是所想匹配的结果,结果为数组 } $str = <<