Posted in PHP onFebruary 08, 2010
作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验。我相信每个做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://img.3water.com/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='https://3water.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 ; } ?>
用php实现的下载css文件中的图片的代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@