≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

PHP利用css文件背景图片下载的实现方法

人气:245 时间:2021-02-28

这篇文章主要为大家详细介绍了PHP利用css文件背景图片下载的实现方法,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小玲来看看吧!

本文实例讲述了php实现的css文件背景图片下载器代码。分享给大家供大家参考。具体实现方法如下:

下载css文件里面的背景图片是我们这些盗版份子长期搞的事情,下载个css图片下载器常出现各种广告弹窗,实在扛不住。这里就提供了一个php版的css文件背景图片下载器给大家。

把文件放到php程序目录 dos下面 php.exe cssImages.php 0 http://www.xxxx.com/css/style.css \images\

先在php程序目录建个images文件夹,呵呵,贴代码:

代码如下:

<?php    

/**   

*@阿唐 2013-4-6 22:19    

*@呵呵   

*/    

set_time_limit(0);    

error_reporting(E_ERROR);    

if($argc<4){    

print_r('    

 +-------------------------------------------------+    

Usage: php '.$argv[0].' css路径类型(0为远程、1为本地) css文件路径 图片保存目录    

Example:     

php.exe '.$argv[0].' 0 http://www.xxx.com/index.css \images\    

 +-------------------------------------------------+    

');    

exit();    

}    

//远程css    

if($argv[1]==0){    

    $host = getParse($argv[2],'host');    

    $savePath = getSavePath($argv[3]);    

    $images = getCssImagesArray($argv[2]);    

    //print_r($images);    

    $imagesurls = getImagesLinks($images,$argv[2]);    

    imagesDowner($imagesurls);    

}    

//本地css开始    

if($argv[1]==1){    

    //懒得写了,呵呵,这个没多大意义    

}    

/*   

 * css图片分析函数   

 * $csspath  css文件路径   

 */    

function getCssImagesArray($csspath){    

    $cssFile = file_get_contents($csspath);    

    $images = array();    

    preg_match_all("|url\((.+)\)|i",$cssFile,$images);    

    $images = $images[1];    

    return $images;    

}    

/*   

 * css文件相对目录处理函数   

 * $path 路径   

 */    

function getNocssPath($path){    

    global $host;    

    $tempLinkmages='';    

    //相当路径获取    

    $tempPath = explode('/',$path);    

    for($i=1;$i<(count($tempPath)-2);$i++){    

        $tempLinkmages .= $tempPath[$i].'/';    

    }    

    $xdImage = $host.$tempLinkmages;    

    return $xdImage;    

    //相当路径获取    

}    

    

/*   

 * 图片连接获取函数   

 * $images array 所有需要获取的images数组   

 * cssLink css文件链接   

 */    

function getImagesLinks($imagesArray,$cssLink){    

global $host;    

$urlImages = array();    

    foreach($imagesArray as $key=>$value){    

        if(pathCheck($value)){    

            if((!in_array(($host.$value),$urlImages))){    

                $urlImages[$key] = $host.$value;    

            }    

        }else{    

            if((!in_array((getNocssPath(getParse($cssLink,'path')).$value),$urlImages))){    

                $urlImages[$key] = getNocssPath(getParse($cssLink,'path')).$value;    

            }    

        }    

    }    

    return $urlImages;    

}    

    

/*   

 * 图片获取   

 * $urlImages需要下载的图片数组   

 */    

function imagesDowner($urlImages){    

//print_r($urlImages);    

    foreach($urlImages as $key=>$value){    

        $urlImagesOk[$key] = str_replace('//','/',$value);    

        $urlImagesOk[$key] = str_replace('"','',$urlImagesOk[$key]);    

        $urlImagesOk[$key] = str_replace("'",'',$urlImagesOk[$key]);    

        $urlImagesOk[$key] = 'http://'.$urlImagesOk[$key];    

        if(grabImage($urlImagesOk[$key],basename($urlImagesOk[$key]))){    

            print_r(    

basename($urlImagesOk[$key]).' 文件下载成功    

');    

        }else{    

            print_r(    

basename($urlImagesOk[$key]).'  下载失败    

');    

        }    

    }    

    //print_r($urlImagesOk);    

}    

/*   

 * 相对路径绝对路径判定函数   

 * $imageUrl 图片链接数组   

 * true 为绝对路径   

 * false 为相当路径   

 */    

function pathCheck($imageUrl){    

    if(preg_match('|^(\/)|',$imageUrl)){    

        return true;    

    }else{    

        return false;    

    }    

}    

    

/*   

 * 图片下载函数   

 * $url 图片链接   

 * $filename图片名字   

 */    

function grabImage($url, $filename){    

    global $savePath;     

    if($url == '') {    

        return false; //如果 $url 为空则返回 false;    

            

    }    

    $ext_name = strrchr($url, '.'); //获取图片的扩展名    

    if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {    

        return false; //格式不在允许的范围    

            

    }    

    if($filename == '') {    

        return false; //名称无效    

            

    }    

    //开始捕获    

    ob_start();    

    if(readfile($url)){    

        $img_data = ob_get_contents();    

        ob_end_clean();    

        $size = strlen($img_data);    

    }else{    

    ob_end_clean();    

    return false;    

    }    

    if(($local_file = fopen($savePath.$filename , 'a'))&&(fwrite($local_file, $img_data)))    

    {    

        fclose($local_file);    

        return true;    

    }    

}    

/*   

 * 保存目录   

 */    

function getSavePath($savepath){    

    $savePath = $savepath;    

    $savePath = dirname(__FILE__).$savePath;    

    return $savePath;    

}    

/*   

 * 解析url   

 */    

function getParse($host,$type){    

    $baseurl = parse_url($host);    

    return $baseurl[$type].'/';    

    

//echo $baseurl;    

}    

?>

 

希望本文所述对大家的PHP程序设计有所帮助。

本文来自:http://www.q1010.com/173/18029-0.html

注:关于PHP利用css文件背景图片下载的实现方法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:

您可能感兴趣的文章

上一篇:解决PHP利用file_exists()判断中文文件名无效的问题
下一篇:PHP利用str_pad实现卡号不足位数自动补0的简单示例
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。