php实现的css文件背景图片下载器代码
发布:smiling 来源: PHP粉丝网 添加日期:2021-04-25 14:02:45 浏览: 评论:0
这篇文章主要介绍了php实现的css文件背景图片下载器代码,涉及文件与URL地址的操作,是非常实用的技巧,需要的朋友可以参考下
本文实例讲述了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程序设计有所帮助。
Tags: php图片下载器
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)