php实现的css文件背景图片下载器代码
发布时间:2020-12-13 02:09:01 所属栏目:PHP教程 来源:网络整理
导读:《:php实现的css文件背景图片下载器代码》要点: 本文介绍了:php实现的css文件背景图片下载器代码,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解php实现的css文件背景图片下载器代码.供大家参考研究.具体实现办法如下: PHP教程 下载cs
《:php实现的css文件背景图片下载器代码》要点: 本篇章节讲解php实现的css文件背景图片下载器代码.分享给大家供大家参考.具体实现办法如下:PHP教程 下载css文件里面的背景图片是我们这些盗版份子长期搞的事情,下载个css图片下载器常出现各种广告弹窗,实在扛不住.这里就提供了一个php版的css文件背景图片下载器给大家.PHP教程 把文件放到php程序目录 dos下面 php.exe cssImages.php 0 http://www.xxxx.com/css/style.css imagesPHP教程 先在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实现的css文件背景图片下载器代码》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |