网站css内图片下载脚本

觉得功能太烂BUG太多的,想加以改进的朋友,可以下载下面的压缩包进行修改补充,这次我加了足够的注释,方便大家阅读
解压之后把整个文件夹(saveimg1.4)放在www目录下通过浏览器访问http://localhost/saveimg1.4/ 即可使用 saveimg1.4.rar (5 K) 下载百度首页外链式css( http://su.bdimg.com/static/superpage/css/index_min_0ffaafc0.css)为例



--------------------------已修正--------------------------

2012.11.29

    代码简化之判断css文件所在的文件夹目录
        ############################
        之前的代码为:
        ############################
        //$url="http://192.168.190.47/phpwind/images/pw_core.css?20111111";
        function getbaseurl($url){
            $a=ltrim($url,'http://');
            $b=explode('/',$a);
            array_pop($b);
            $c=implode('/',$b);
            $baseurl='http://'.$c.'/';
            return $baseurl;
        }
        ############################
    去掉之前用的切割组合,使用系统默认函数dirname()
    echo dirname("http://192.168.190.47/phpwind/images/down.png");
    //输出结果为:“ http://192.168.190.47/phpwind/images

2012.11.30

    1.bug修复 => 修复即使文件下载为空都提示下载成功的错误。
    2.简化下载代码,也许底层执行过程是一样的,只是php代码减少了一点。

    --------------------------原代码--------------------------
    ob_start();
    readfile($url);
    $obj=ob_get_contents();
    ob_end_clean();
    $fp2=fopen($filename,"w");
    fwrite($fp2,$obj);
    fclose($fp2);
    echo $url.'<font color="green">下载成功</font><br/>';
    --------------------------修改为--------------------------
    $b=file_get_contents($url);
    $c=file_put_contents($filename,$b);
    if($c!=0){
        echo $url.'<font color="green">下载成功</font><br/>';
    }else{
        echo $url.'<font color="red">下载失败</font><br/>';
    }

2012.12.03

    css中的图片地址BUG修复
        今天在采集新浪的某个页面的时候发现其中的css图片的地址采用的是url(/images/xx.jpg)这样的格式
        而不是url(./images/xx.jpg)
        也不是url(images/xx.jpg)
        这样这个图片的地址就是www_sian.cn/images_xx_jpg
        而非www_sian.cn/css/images/xx_jp_g(假设css文件放在了 www.sian.cn/css目录下)
        这样在获去了css中的图片地址之后则需要做一个正则匹配

        下面需要考虑图片地址在url的引用方法
        1    images/xxx.jpg
        2  ./images/xxx.jpg
        3 ../images/xxx.jpg
        4   /images/xxx.jpg

        $check=preg_match('/^\//',$z);//这里$z代表url()中的图片地址的字符串
        if($check==1){
            echo 'YES';//是第四种情况
        }else{
            echo 'NO';//不是第四种情况
        }

2012.12.08

    获取css中图片地址的方法修改
        可能最开始想的是直接取出css中的url()整个元素,所以一直向正则匹配那边在想,使用的是$arr=preg_split('/url\(/',$content);
        既然没有利用到正则的优势,似乎使用$arr=explode('url(',$content)效率要高一些?

2012.12.08

    1.css文件中url图片地址地址修复
        坑爹的百度贴吧居然使用了background:url(http://tb2.bdstatic.com/tb/style/chat/img/new.gif)这样的方法
        只能再多加一个判断了
        1    images/xxx.jpg
        2  ./images/xxx.jpg
        3 ../images/xxx.jpg
        4   /images/xxx.jpg
        5    http://
        $check=preg_match('/^http/',$z);
        if($check==1){
            //直接保存图片地址
        }else{
            $check2=preg_match('/^\//',$z);//这里$z代表url()中的图片地址的字符串
            if($check2==1){
                echo 'YES';//是第四种情况
            }else{
                echo 'NO';//不是第四种情况
            }
        }

--------------------------未解决--------------------------

新浪博客、新浪微博的css文件保存之后是乱码,我能想到的就是使用file_get_contents( )和file_put_contents( )来实现文件下载出现了问题。

原文地址: http://bbs.lampbrother.net/read-htm-tid-150076.html
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(22) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值