php实现的css文件背景图片下载器代码

2015-01-24信息快讯网

这篇文章主要介绍了php实现的css文件背景图片下载器代码,涉及文件与URL地址的操作,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
php导入excel文件到mysql数据库的方法
PHP上传文件时自动分配路径的方法
PHP中使用php5-ffmpeg撷取视频图片实例
PHP实现的简易版图片相似度比较
PHP中使用SimpleXML检查XML文件结构实例
php静态文件返回304技巧分享
php使用fputcsv()函数csv文件读写数据的方法
phplot生成图片类用法详解
php采集内容中带有图片地址的远程图片并保存的方法
PHP采集静态页面并把页面css,img,js保存的方法
php获取CSS文件中图片地址并下载到本地的方法
ThinkPHP模版中导入CSS和JS文件的方法
php中cookie实现二级域名可访问操作的方法
PHP获取数组中重复最多的元素的实现方法
利用PHP函数计算中英文字符串长度的方法
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
PHP基于imap获取邮件实例
php无限极分类递归排序实现方法
php实现压缩多个CSS与JS文件的方法
详谈PHP文件目录基础操作
php多个文件及图片上传实例详解
PHP文件上传判断file是否己选择上传文件的方法
php使用fgetcsv读取csv文件出现乱码的解决方法
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
php实现获取文章内容第一张图片的方法
php基于base64解码图片与加密图片还原实例
php实现图片文件与下载文件防盗链的方法
php实现的CSS更新类实例
使用YUI+Ant 实现JS CSS压缩
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
php ci框架中加载css和js文件失败的原因及解决方法
©2014-2024 dbsqp.com