用php实现的下载css文件中的图片的代码

  作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验。我相信每个做web的程序员也都会有类似的经历。

  在扒皮过程中,必不可少的需要下载样式文件中的图片。碰到比较庞大的样式文件,其中可能会有上百个需要下载的图片,那么使用下面这段小代码是最为合适的了。

  

复制代码 代码如下:

  < ?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

  set_time_limit ( 0 );

  $styleFileContent = file_get_contents ( 'http://dl.glzy8.com/img/skin/newblue/main.css' );

  preg_match_all ( "/url\((.*)\)/", $styleFileContent, $imagesURLArray );

  $imagesURLArray = array_unique ( $imagesURLArray [1] );

  foreach ( $imagesURLArray as $imagesURL ) {

  $dir=dirname($imagesURL);

  if(!file_exists($dir))

  {

  //创建目录

  createDir($dir);

  }

  $imagesURL='http://www.glzy8.com/'.$imagesURL;

  file_put_contents ( basename ( $imagesURL ), file_get_contents ( $imagesURL ) );

  }

  function createDir($path) {

  $path = str_replace('\\','/',$path) ;

  if ( is_dir($path) ) return true ;

  if ( file_exists($path) ) return false ;

  $parent = substr($path ,0, strrpos($path,'/') ) ;

  if ( $parent==='' || $parent==='.' || createDir( $parent ) )

  return @mkdir($path) ;

  else return false ;

  }

  ?>