PHP下载CSS文件中的图片
发布时间:January 19, 2009 分类:PHP
作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验。我相信每个做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)); |
| } |
最后预祝各位在扒皮的过程中,一扒到底!

扒皮
沙发
我都喜欢
@blankyao, 恩,我以后扒皮的任务都交给你了。
@kimi, 你的也可以回复了,帅!
我喜欢扒...
可喜可贺
顶一下~!板凳
Hack for CSS Sprite:
$imagesURLArray = array_unique($imagesURLArray[1]);
foreach($imagesURLArray as $imagesURL) {
file_put_contents(basename($imagesURL), file_get_contents($imagesURL));
}
@习明, good job 已经修正原文中代码
@kimi, 还有几个需要fix的:
1. 注释信息内的url应该干掉
2. 直接file_get_contents远程url时相对路径的问题
3. url中' "应该干掉
目前想到这3个
请问这个东西怎么用呀?
@水皮, 用php命令行或者,web方式跑都可以的。不过如果文件很多的话,用命令行方式更好。
如果CSS文件中的图片路径是相对路径,此代码就失效了
好东西啊~
用firebug分析,
用另存为就可以保存背景图片嘛.
@qijun, 这个是批量下载的嘛~~
@kimi, ie的另存为貌似可以批量保存的,相对路径也没有问题.
PS,羡慕你,初三就会扒皮了,我大二才会....
要是图片不存在了,就会报错了
@lanqy, 是哦,简单的写了一下,你可以在取得图片的地方加个判断即可!
呵呵,我也写了这样一个东西。 http://www.sswowo.com/getcssimages/
站不错,今天搜一些PHP和MYSQL相关的内容进来的,我也是搞PHP的(当然还有其它的啦),做个友情链接吧,
我的网址是http://www.pl4cj.org/
目前放在Google App Engine上的,所以有时被墙会打不开,呵呵
这个真是好东西啊,多谢博主。