好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP批量下载html与css中图片文件实例 - php高级应用

PHP批量下载html与css中图片文件实例

最近一直很忙,遇到一个手工活,需要下载一些远程的图片,一共一百多张,如果通过手工一张一张的保存,也太耗费时间了,于是上网google了一把,找到PHP批量下载图片文件的方法,原文是出自平凡世界博客的一片关于如何使用PHP批量下载CSS文件中的图片的文章,经过研究改写了一下就可以使用了,方便快捷多了.

PHP批量下载图片文件代码:

set_time_limit(0); //设置PHP超时时间   $imagesURLArray  =  array_unique ( $imagesURLArray  );    foreach ( $imagesURLArray   as   $imagesURL ) {       echo   $imagesURL ;       echo  "  ";       file_put_contents ( basename ( $imagesURL ),  file_get_contents ( $imagesURL ));  } 

原理很简单,通过一个含有图片地址的数组循环,然后使用PHP的file_get_contents函数取得图片,在使用file_put_contents函数把图片保存下来.

注意:一定要加上设置PHP超时时间.

附上原文中通过php下载css中图片的代码:

<?php  /*   More & Original PHP Framwork   Copyright (c) 2007 - 2008 IsMole Inc.   Author: kimi   Documentation: 下载样式文件中的图片,水水专用扒皮工具   */     //note 设置PHP超时时间   set_time_limit(0);    //note 取得样式文件内容   $styleFileContent  =  file_get_contents ( 'images/style.css' );    //note 匹配出需要下载的URL地址   preg_match_all( "/url((.*))/" ,  $styleFileContent ,  $imagesURLArray );    //note 循环需要下载的地址,逐个下载   $imagesURLArray  =  array_unique ( $imagesURLArray [1]);       foreach ( $imagesURLArray   as   $imagesURL ) {       file_put_contents ( basename ( $imagesURL ),  file_get_contents ( $imagesURL ));  }  ?> 

后来又找到一个php批量下载图片文件,假如现在我现在发现一个网站上的图片保存方式是1001 – 1999目录下都存放着从1开始(数量不等)的.jpg图片,现在我决定用php的方法将图片按照自己需要的样式直接下载到本地.

假如图片开始地址为:http://image.phpfensi.com/img/1001/1.jpg

这时我将1001处放到变量$id,1.jpg放到变量$num.jpg,保存的文件名为$id_$num.jpg,首先确保在此文件执行目录下面建一个名为img的并且可写的文件夹,代码如下:

$id = isset( $_GET [ 'id' ]) &&  intval ( $_GET [ 'id' ]) &&  $_GET [ 'id' ]>1000 ?  $_GET [ 'id' ] : 1001;  $num = isset( $_GET [ 'num' ]) &&  intval ( $_GET [ 'num' ]) ?  $_GET [ 'num' ] : 1;  $url = "http://image.xxx.com/img/{$id}/{$num}.jpg" ;    $array =get_headers( $url ,1);    //通过返回200和400来判断是增加$id或者$num   if (preg_match( '/200/' , $array [0])){    $new_url = "?id={$id}&num=" .( $num +1);     ob_start();   readfile( $url );    $img  = ob_get_contents();   ob_end_clean();       $filename = "./img/{$id}_{$num}.jpg" ;    $f = fopen ( $filename , 'a' );   fwrite( $f , $img );   fclose( $f );  } else {    $new_url = "?id=" .( $id +1). "&num=1" ;  }  if ( $id  > 1999)  exit ( '全部完成' );  //显示当前的状态   echo   $url , ' - ' , $array [0], '<script>location.href="' . $new_url . '";</script>' ;  

查看更多关于PHP批量下载html与css中图片文件实例 - php高级应用的详细内容...

  阅读:36次