1 /* 2 * 上传网络图片 3 */ 4 function GrabImage($url,$filename="") { 5 if($url=="") return false; 6 7 if($filename=="") { 8 $ext=strrchr($url,"."); 9 if($ext!=".jpeg" && $ext!=".jpg" && $ext!=".png") return false; 10 preg_match('/\/([^\/]+\.[a-z]{3,4})$/i',$url,$matches); 11 $image_name = strToLower($matches[1]); 12 $filename='data/runtime/images/'.$image_name; 13 }else{ 14 $image_name = $filename; 15 $filename='data/runtime/images/'.$filename; 16 } 17//方法一 18 $ch = curl_init(); 19 curl_setopt($ch, CURLOPT_POST, 0); 20 curl_setopt($ch,CURLOPT_URL,$url); 21 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 22 $file_content = curl_exec($ch); 23 curl_close($ch); 24 $downloaded_file = fopen($filename, 'w'); 25 fwrite($downloaded_file, $file_content); 26 fclose($downloaded_file); 27 return $image_name; 28 29//方法二 30// $src_im = imagecreatefromjpeg($url); 31// $srcW = ImageSX($src_im); //获得图像的宽 32// $srcH = ImageSY($src_im); //获得图像的高 33// $dst_im = ImageCreateTrueColor($srcW,$srcH); //创建新的图像对象 34// imagecopy($dst_im, $src_im, 0, 0, 0, 0, $srcW, $srcH); 35// imagejpeg($dst_im, $filename); //创建缩略图文件 36 // return $image_name; 37 38//方法三 39// ob_start(); 40// readfile($url); 41// $img = ob_get_contents(); 42// ob_end_clean(); 43// $size = strlen($img); 44// $fp2=@fopen($filename, "a"); 45// fwrite($fp2,$img); 46// fclose($fp2); 47// return $image_name; 48 }
ps: http://www.jb51.net/article/78455.htm http://www.cnblogs.com/mengxiaotian/p/5051579.html http://blog.csdn.net/iefreer/article/details/46930239