php文件更改样式表,php实现的css文件背景图片下载器代码

这是一个使用PHP编写的CSS文件背景图片下载器,能够从远程CSS文件中抓取并下载背景图片。通过命令行参数指定CSS路径、类型(远程或本地)以及图片保存目录。代码包括了对CSS中图片URL的解析、相对路径到绝对路径转换、图片下载等功能,旨在避免使用带有广告的下载工具。
摘要由CSDN通过智能技术生成

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

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

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

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

/**

*@阿唐 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

$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程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值