用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获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
解析link_mysql的php版
Jun 30 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
php内核解析:PHP中的哈希表
Jan 30 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
php生成随机颜色方法汇总
Dec 03 PHP
试用php中oci8扩展
Jun 18 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 PHP
PHP超全局变量实现原理及代码解析
Sep 01 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
我的论坛源代码(九)
2006/10/09 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php依赖注入知识点详解
2019/09/23 PHP
基于JQUERY的多级联动代码
2012/01/24 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
python冒泡排序简单实现方法
2015/07/09 Python
python调用java的jar包方法
2018/12/15 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
python实现微信打飞机游戏
2020/03/24 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Python通过zookeeper实现分布式服务代码解析
2020/07/22 Python
python实现视频压缩功能
2020/12/18 Python
软件测试工程师结构化面试题库
2016/11/23 面试题
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js