用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 相关文章推荐
15种PHP Encoder的比较
Apr 17 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
php对数组排序的简单实例
Dec 25 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
php邮件发送的两种方式
Apr 28 PHP
php实现微信支付之退款功能
May 30 PHP
php+Ajax无刷新验证用户名操作实例详解
Mar 04 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
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
python列表操作之extend和append的区别实例分析
2015/07/28 Python
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
2015初中团委工作总结
2015/07/28 职场文书
军训决心书范文
2015/09/22 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
教你利用python实现企业微信发送消息
2021/05/23 Python
python函数的两种嵌套方法使用
2022/04/02 Python
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis