首页 > 开发 > PHP > 正文

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

2024-05-04 23:27:10
字体:
来源:转载
供稿:网友
这篇文章主要介绍了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程序设计有所帮助。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表