gd库图片下载类实现下载网页所有图片.doc_第1页
gd库图片下载类实现下载网页所有图片.doc_第2页
gd库图片下载类实现下载网页所有图片.doc_第3页
gd库图片下载类实现下载网页所有图片.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在前期的php教程就讲了php gd库可以实现远程图片的下载,但是那只是下载了一张图片,原理是一样的,要想下载一个网页的所有图片只要使用正则表达式进行判断,找出所有的图片url就可以进行循环下载了,我特地参照网络资源编写了gd库图片下载类!php代码如下:(版权:)1 array(request_fulluri=true);12 $context= stream_context_create($opts);13 $content= file_get_contents($url,false,$context);14 /匹配img标签,将所有匹配字符串保存到数组$matches15 $reg= /i;16 preg_match_all($reg, $content, $matches);17 $count = count($matches0);18 for ($i=0; $i$count; $i+)19 /*将所有图片的url转换为小写20 *$matches1$i = strtolower($matches1$i);21 */22 /如果图片为相对路径就转化为全路径23 if (!strpos(a.$matches1$i, http)24 /因为/是第0个位置25 if (strpos(a.$matches1$i, /)26 $matches1$i = http:/.$main_url.$matches1$i;27 else28 $matches1$i = $base_url.$matches1$i;29 30 31 32 /过滤重复的图片33 $img_arr = array_unique($matches1);34 /实例化图片下载类35 $getImg = new DownImage();36 $url_count = count($img_arr);37 for ($i=0; $isource = $img_arr$i;39 $getImg-save_address = ./pic/;40 $file = $getImg-download();41 42 echo 下载完成!哈哈,简单吧!;43 44 class DownImage45 public $source;/远程图片URL46 public $save_address;/保存本地地址47 public $set_extension; /设置图片扩展名48 public $quality; /图片的质量(0100,100最佳,默认75左右)49 /下载方法(选用GD库图片下载)50 public function download()51 /获取远程图片信息52 $info = getimagesize($this-source);53 /获取图片扩展名54 $mime = $infomime;55 $type = substr(strrchr($mime, /), 1);56 /不同的图片类型选择不同的图片生成和保存函数57 switch($type)58 case jpeg:59 $img_create_func = imagecreatefromjpeg;60 $img_save_func = imagejpeg;61 $new_img_ext = jpg;62 $image_quality = isset($this-quality) ? $this-quality : 100;63 break;64 case png:65 $img_create_func = imagecreatefrompng;66 $img_save_func = imagepng;67 $new_img_ext = png;68 break;69 case bmp:70 $img_create_func = imagecreatefrombmp;71 $img_save_func = imagebmp;72 $new_img_ext = bmp;73 break;74 case gif:75 $img_create_func = imagecreatefromgif;76 $img_save_func = imagegif;77 $new_img_ext = gif;78 break;79 case vnd.wap.wbmp:80 $img_create_func = imagecreatefromwbmp;81 $img_save_func = imagewbmp;82 $new_img_ext = bmp;83 break;84 case xbm:85 $img_create_func = imagecreatefromxbm;86 $img_save_func = imagexbm;87 $new_img_ext = xbm;88 break;89 default:90 $img_create_func = imagecreatefromjpeg;91 $img_save_func = imagejpeg;92 $new_img_ext = jpg;93 94 /根据是否设置扩展名来合成本地文件名95 if (isset($this-set_extension)96 $ext = strrchr($this-source,.);97 $strlen = strlen($ext);98 $newname = basename(substr($this-source,0,-$strlen).$new_img_ext;99 else100 $newname = basename($this-source);101 102103 /生成本地文件路径104 $save_address = $this-save_address.$newname;105 $img = $img_create_func($this-source);106 if (isset($image_quality)107 $save_img = $img_save_func($img,$save_address,$image_quality);108 else109 $save_img = $img_save_func($img,$save_address);110 111 ret

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论