当前位置:首页 > PHP教程 > php高级应用 > 列表

css文件背景图片下载器php版

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-22 14:37:44 浏览: 评论:0 

下载css文件里面背景是我们这些盗版份子长期搞的事情,下载个css图片下载器各种广告弹窗,扛不住,呵呵,写了个水货的php版本的,可以凑合着用下.

把文件放到php程序目录 dos下面 php.exe cssImages.php 0 http://www.phpfensi.com/wp-content/themes/itxti/style.css \images\

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

  1. <?php   
  2. /**  
  3. *@link  http://blog.csdn.net/jsbba  
  4. *@阿唐 2013-4-6 22:19   
  5. *@呵呵  
  6. */   
  7. set_time_limit(0);   
  8. error_reporting(E_ERROR);   
  9. if($argc<4){   
  10. print_r('   
  11.  +-------------------------------------------------+   
  12. Usage: php '.$argv[0].' css路径类型(0为远程、1为本地) css文件路径 图片保存目录   
  13. Example:    
  14. php.exe '.$argv[0].' 0 http://www.xxx.com/index.css \images\   
  15.  +-------------------------------------------------+   
  16. ');   
  17. exit();   
  18. }   
  19. //远程css   
  20. if($argv[1]==0){   
  21.     $host = getParse($argv[2],'host');   
  22.     $savePath = getSavePath($argv[3]);   
  23.     $images = getCssImagesArray($argv[2]);   
  24.     //print_r($images);   
  25.     $imagesurls = getImagesLinks($images,$argv[2]);   
  26.     imagesDowner($imagesurls);   
  27. }   
  28. //本地css开始   
  29. if($argv[1]==1){   
  30.     //懒得写了,呵呵,这个没多大意义   
  31. }   
  32. /*  
  33.  * css图片分析函数  
  34.  * $csspath  css文件路径  
  35.  */   
  36. function getCssImagesArray($csspath){   
  37.     $cssFile = file_get_contents($csspath);   
  38.     $images = array();   
  39.     preg_match_all("|url\((.+)\)|i",$cssFile,$images);   
  40.     $images = $images[1];   
  41.     return $images;   
  42. }   
  43. /*  
  44.  * css文件相对目录处理函数  
  45.  * $path 路径  
  46.  */   
  47. function getNocssPath($path){   
  48.     global $host;   
  49.     $tempLinkmages='';   
  50.     //相当路径获取   
  51.     $tempPath = explode('/',$path);   
  52.     for($i=1;$i<(count($tempPath)-2);$i++){   
  53.         $tempLinkmages .= $tempPath[$i].'/';   
  54.     }   
  55.     $xdImage = $host.$tempLinkmages;   
  56.     return $xdImage;   
  57.     //相当路径获取   
  58. }   
  59.    
  60. /*  
  61.  * 图片连接获取函数  
  62.  * $images array 所有需要获取的images数组  
  63.  * cssLink css文件链接  
  64.  */   
  65. function getImagesLinks($imagesArray,$cssLink){   
  66. global $host;   
  67. $urlImages = array();   
  68.     foreach($imagesArray as $key=>$value){   
  69.         if(pathCheck($value)){   
  70.             if((!in_array(($host.$value),$urlImages))){   
  71.                 $urlImages[$key] = $host.$value;   
  72.             }   
  73.         }else{   
  74.             if((!in_array((getNocssPath(getParse($cssLink,'path')).$value),$urlImages))){   
  75.                 $urlImages[$key] = getNocssPath(getParse($cssLink,'path')).$value;   
  76.             }   
  77.         }   
  78.     }   
  79.     return $urlImages;   
  80. }   
  81.    
  82. /*  
  83.  * 图片获取  
  84.  * $urlImages需要下载的图片数组  
  85.  */   
  86. function imagesDowner($urlImages){   
  87. //print_r($urlImages);   
  88.     foreach($urlImages as $key=>$value){   
  89.         $urlImagesOk[$key] = str_replace('//','/',$value);   
  90.         $urlImagesOk[$key] = str_replace('"','',$urlImagesOk[$key]);   
  91.         $urlImagesOk[$key] = str_replace("'",'',$urlImagesOk[$key]);   
  92.         $urlImagesOk[$key] = 'http://'.$urlImagesOk[$key];   
  93.         if(grabImage($urlImagesOk[$key],basename($urlImagesOk[$key]))){   
  94.             print_r(   
  95. basename($urlImagesOk[$key]).' 文件下载成功   
  96. ');   
  97.         }else{   
  98.             print_r(   
  99. basename($urlImagesOk[$key]).'  下载失败   
  100. ');   
  101.         }   
  102.     }   
  103.     //print_r($urlImagesOk);   
  104. }   
  105. /*  
  106.  * 相对路径绝对路径判定函数  
  107.  * $imageUrl 图片链接数组  
  108.  * true 为绝对路径  
  109.  * false 为相当路径  
  110.  */   
  111. function pathCheck($imageUrl){   
  112.     if(preg_match('|^(\/)|',$imageUrl)){   
  113.         return true;   
  114.     }else{   
  115.         return false;   
  116.     }   
  117. }   
  118.    
  119. /*  
  120.  * 图片下载函数  
  121.  * $url 图片链接  
  122.  * $filename图片名字  
  123.  */   
  124. function grabImage($url$filename){   
  125.     global $savePath;    
  126.     if($url == '') {   
  127.         return false; //如果 $url 为空则返回 false;   
  128.            
  129.     }   
  130.     $ext_name = strrchr($url'.'); //获取图片的扩展名   
  131.     if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {   
  132.         return false; //格式不在允许的范围   
  133.            
  134.     }   
  135.     if($filename == '') {   
  136.         return false; //名称无效   
  137.            
  138.     }   
  139.     //开始捕获   
  140.     ob_start();   
  141.     if(readfile($url)){   
  142.         $img_data = ob_get_contents();   
  143.         ob_end_clean();   
  144.         $size = strlen($img_data);   
  145.     }else{   
  146.     ob_end_clean();   
  147.     return false;   
  148.     }   
  149.     if(($local_file = fopen($savePath.$filename , 'a'))&&(fwrite($local_file$img_data)))   
  150.     {   
  151.         fclose($local_file);   
  152.         return true;   
  153.     }   
  154. }   
  155. /*  
  156.  * 保存目录  
  157.  */   
  158. function getSavePath($savepath){   
  159.     $savePath = $savepath;   
  160.     $savePath = dirname(__FILE__).$savePath;   
  161.     return $savePath;   
  162.       //phpfensi.com 
  163. }   
  164. /*  
  165.  * 解析url  
  166.  */   
  167. function getParse($host,$type){   
  168.     $baseurl = parse_url($host);   
  169.     return $baseurl[$type].'/';   
  170.    
  171. //echo $baseurl;   
  172. }   
  173. ?>

Tags: css文件背景 css背景图片

分享到: