本文实例讲述了php实现的css文件背景图片下载器代码。分享给大家供大家参考。具体实现方法如下:下载css文件里面的背景图片是我们这些盗版份子长期搞的事情,下载个css图片下载器常出现各种广告弹窗,实在扛不住。这里就提供了一个php版的css文件背景图片下载器给大家。
把文件放到php程序目录 dos下面 php.exe cssImages.php 0 http://www.xxxx.com/css/style.css \images\先在php程序目录建个images文件夹,呵呵,贴代码:PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载复制代码代码如下:/***@阿唐 2013-4-6 22:19*@呵呵*/ set_time_limit(0);error_reporting(E_ERROR);if($argc 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程序设计有所帮助。
