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


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 相关文章推荐
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 #PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 #PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 #PHP
php cli 方式 在crotab中运行解决
Feb 08 #PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
Feb 08 #PHP
Zend framework处理一个http请求的流程分析
Feb 08 #PHP
PHP函数常用用法小结
Feb 08 #PHP
You might like
3种平台下安装php4经验点滴
2006/10/09 PHP
消息持续发送的完整例子
2006/10/09 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
jQuery Tools tab使用介绍
2012/07/14 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
为什么是 Python -m
2020/06/19 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
护理专业推荐信
2013/11/07 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
小班重阳节活动方案
2014/02/08 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL