php 获取远程图片保存到本地
使用两个函数
1、获取远程文件
2、把图片保存到本地
/** * 获取远程图片并把它保存到本地 * $url 是远程图片的完整URL地址,不能为空。 */ function get_image_byurl($url, $filename="") { if ($url == "") { return false; } $ext = strrchr($url, "."); //得到图片的扩展名 if($ext != ".gif" && $ext != ".jpg" && $ext != ".bmp") { $ext = ".jpg"; } if($filename == "") { $filename = time() . $ext; } //以时间另起名,在此可指定相对目录 ,未指定则表示同php脚本执行的当前目录 //以流的形式保存图片 $write_fd = @fopen($filename,"a"); @fwrite($write_fd, CurlGet($url)); //将采集来的远程数据写入本地文件 @fclose($write_fd); return($filename); //返回文件名 } /** * 获取远程文件内容 * url 不能为空 */ function CurlGet($url){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, false); //curl_setopt($curl, CURLOPT_REFERER,$url); curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; SeaPort/1.2; Windows NT 5.1; SV1; InfoPath.2)"); //模拟浏览器访问 curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie.txt'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0); $values = curl_exec($curl); curl_close($curl); return($values); }