php实现的css文件背景图片下载器代码
php实现的css文件背景图片下载器代码
发布时间:2016-12-29 来源:查字典编辑
摘要:本文实例讲述了php实现的css文件背景图片下载器代码。分享给大家供大家参考。具体实现方法如下:下载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程序设计有所帮助。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类