PHP下载CSS文件中的图片
本文最后更新于 5520 天前,其中的信息可能已经有所发展或是发生改变。

作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验。我相信每个做web的程序员也都会有类似的经历。

在扒皮过程中,必不可少的需要下载样式文件中的图片。碰到比较庞大的样式文件,其中可能会有上百个需要下载的图片,那么使用下面这段小代码是最为合适的了。

<?php
/*
    More & Original PHP Framwork
    Copyright (c) 2007 - 2008 IsMole Inc.

    Author: kimi
    Documentation: 下载样式文件中的图片,Kimi专用扒皮工具
*/

//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));
}

最后预祝各位在扒皮的过程中,一扒到底!

评论

  1. 15年前
    2009-1-19 11:29:47

    扒皮
    沙发
    我都喜欢

    • 博主
      blankyao
      15年前
      2009-1-19 11:31:13

      @blankyao, 恩,我以后扒皮的任务都交给你了。

      • Kimi
        15年前
        2009-1-19 12:00:09

        @kimi, 你的也可以回复了,帅!

  2. lulu
    15年前
    2009-1-19 11:30:23

    我喜欢扒…

  3. 15年前
    2009-1-19 11:30:51

    可喜可贺

  4. 15年前
    2009-1-19 11:31:05

    顶一下~!板凳

  5. 15年前
    2009-1-19 15:13:29

    Hack for CSS Sprite:

    $imagesURLArray = array_unique($imagesURLArray[1]);
    foreach($imagesURLArray as $imagesURL) {
    file_put_contents(basename($imagesURL), file_get_contents($imagesURL));
    }

    • 博主
      习明
      15年前
      2009-1-19 16:20:52

      @习明, good job 已经修正原文中代码

      • Kimi
        15年前
        2009-1-19 18:08:18

        @kimi, 还有几个需要fix的:
        1. 注释信息内的url应该干掉
        2. 直接file_get_contents远程url时相对路径的问题
        3. url中’ “应该干掉

        目前想到这3个

  6. 水皮
    15年前
    2009-3-17 17:16:37

    请问这个东西怎么用呀?

    • 博主
      水皮
      15年前
      2009-3-19 16:45:17

      @水皮, 用php命令行或者,web方式跑都可以的。不过如果文件很多的话,用命令行方式更好。

  7. hehe
    15年前
    2009-6-13 0:59:09

    如果CSS文件中的图片路径是相对路径,此代码就失效了

  8. 15年前
    2009-8-03 0:05:15

    好东西啊~

  9. 14年前
    2009-10-08 23:18:25

    用firebug分析,
    用另存为就可以保存背景图片嘛.

    • 博主
      qijun
      14年前
      2009-10-15 11:26:22

      @qijun, 这个是批量下载的嘛~~

      • qijun
        Kimi
        14年前
        2009-10-23 11:04:02

        @kimi, ie的另存为貌似可以批量保存的,相对路径也没有问题.
        PS,羡慕你,初三就会扒皮了,我大二才会….

  10. lanqy
    14年前
    2009-11-29 21:58:57

    要是图片不存在了,就会报错了

    • 博主
      lanqy
      14年前
      2009-12-14 11:22:12

      @lanqy, 是哦,简单的写了一下,你可以在取得图片的地方加个判断即可!

  11. 14年前
    2010-6-29 10:07:07

    呵呵,我也写了这样一个东西。 http://www.sswowo.com/getcssimages/

  12. 14年前
    2010-7-15 17:08:02

    站不错,今天搜一些PHP和MYSQL相关的内容进来的,我也是搞PHP的(当然还有其它的啦),做个友情链接吧,
    我的网址是http://www.pl4cj.org/
    目前放在Google App Engine上的,所以有时被墙会打不开,呵呵

  13. 14年前
    2010-8-03 18:06:40

    这个真是好东西啊,多谢博主。

  14. 12年前
    2012-2-26 11:20:01

    php的啊。,我以为是直接在线扒的那种呢。。

  15. 12年前
    2012-2-26 11:22:05

    推荐博主可以搞一个在线的。这样会有更多的人。

  16. lory
    10年前
    2013-9-21 21:25:30

    file_get_contents 是可以获取到图片资源,但是要是这个资源没有,它直接就中断,我发现判断也无用,只能用设定获取次数,超过不用在获取

  17. 10年前
    2014-1-10 23:51:58

    你好,在抓取数据的时候遇到问题:想抓取淘宝指数网站上的热门关键字,发现它不仅要求用户登录,而且用于验证的cookie值每请求一次就改变一次,这种情况如何处理好?

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇