PHP修改css文件中的背景图片并下载到本地

本文介绍了一款用于从CSS文件中提取并下载背景图片的PHP脚本。该脚本可以遍历指定目录下的所有CSS文件,通过解析CSS内容找到背景图片的URL,并将图片下载保存到本地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

扒网站当中一般css中的图片扒不下来,这个脚本就是用来下载这些图片到本地的

 

流程

    1、获取css文件路径

    2、打开文件逐行读取判断是否包含需要的图片

      2.1 包含则 -进行截取直接获取到相对路径

        2.1.1 根据curl来文件流,fopne打开文件,fwrite写入文件

      2.2不包含则跳出

 

<?php
/**
 * Created by PhpStorm.
 * User: 小狗蛋儿
 * Date: 2018/3/19
 * Time: 14:39
 *
 * 获取css文件下面所有的css文件
 * 然后替换所有的background
 */

    $dirname=dirname("D:\\ibwant\\new.css-13.css");

     $root_url="xxxxxx";  //网站根目录

     $rege="";
    if (!is_dir($dirname)){
        echo "不是目录".$dirname;
    }else {

         $file=array();

        $scandir = scandir($dirname);
        foreach ($scandir as $value){
            if (getExtends($value)=="css"){

                $handle  = fopen ($dirname."\\".$value, "r");
                GetsSave($handle,$value);

            }else{
                continue;
            }



        }
    }

/**
 * @param $files
 * @return mixed
 * 出现的位置
 */
    function getExtends($files){
        return pathinfo($files, PATHINFO_EXTENSION);
    }

/**
 * @param $opens
 * @param $names
 * 获取指定文件的位置
 */
    function GetsSave($opens,$names){
        $fl=array();
        //feof  判断检测文件是否到末尾
        while(!feof($opens)){
                $contents=fgets($opens);
                 if(strstr($contents,"/*tpa=")){
                     $fl[]=substr($contents,strpos($contents,"=")+1);



                 }else{
                        continue;
                 }
        }
        getDows($fl);
        fclose($opens);
    }


//    $s="xxxx";
//    echo strpos($s,"*");

function  getDows($as){
        $cas=array();
        foreach ($as as $value){

            if (substr($value,0,4)!="http"){
                continue;
            }else {
                $nums = strpos($value, "*");
                $cas[] = substr($value, 0, $nums);
            }
        }
    Saveimg($cas);

}

        function Saveimg($ims){
            foreach ($ims as $values){
                $contens=trim(strrchr($values,"/"),"/");

               // $filenames=substr($contens,0,strpos($contens,"."));
                $return_content = http_get_data($values);
                //var_dump($return_content);

               $fp= @fopen($contens,"a");
                fwrite($fp,$return_content);

            }

        }

        function http_get_data($url){
            $ch=curl_init();
            curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' );
            curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
            curl_setopt ( $ch, CURLOPT_URL, $url );
            ob_start ();
            curl_exec ( $ch );
            $return_content = ob_get_contents ();
            ob_end_clean ();

            $return_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
            return $return_content;
        }

 

转载于:https://www.cnblogs.com/mengluo/p/8606489.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值