php实现的CSS更新类实例

本文实例讲述了php实现的CSS更新类及其用法,非常实用。分享给大家供大家参考。具体如下:

CSSUpdate.class.php类文件如下:

<?php /** css 更新类,更新css文件内图片的版本 *  Date:  2013-02-05 *  Author: fdipzone *  Ver:  1.1 * *  Func: *  update(); * *  Ver:  1.1 增加search_child参数,可遍历子文件夹 */  class CSSUpdate{    private $csstmpl_path = null;   private $css_path = null;   private $replacetags = array();   private $search_child = false;   private $convert_num = 0;   private $is_ready = 0;    /** 初始化   * @param String $csstmpl_path css模版路径   * @param String $css_path   css目标路径   * @param Array  $replacetags 需要替换的图片类型   * @param boolean $search_child 是否遍历子文件夹,默认false   */   public function __construct($csstmpl_path, $css_path, $replacetags=array(), $search_child=false){     if(!is_dir($csstmpl_path) || !is_dir($css_path) || !$replacetags){       $this->is_ready = 0;     }else{       $this->csstmpl_path = $csstmpl_path;       $this->css_path = $css_path;       $this->replacetags = $replacetags;       $this->search_child = $search_child;       $this->is_ready = 1;     }   }    /** 更新css文件 */   public function update(){     if($this->is_ready==0){       $this->response('csstmpl or csspath or replacetags error');       return '';     }     $this->traversing($this->csstmpl_path);     $this->response('covert num:'.$this->convert_num);   }    /** 遍历文件夹   * @param String $path 文件路径   */   private function traversing($path){     $handle = opendir($path);     while(($file=readdir($handle))!==false){       if($file!='..' && $file!='.'){         $curfile = $path.'/'.$file;                  if(is_dir($curfile)){  // folder           if($this->search_child){  // 需要遍历子文件夹             $this->traversing($curfile);           }         }elseif($this->checkExt($curfile)){ // css file           $dfile = str_replace($this->csstmpl_path, $this->css_path, $curfile);           $this->create($curfile, $dfile);           $this->response($curfile.' convert to '.$dfile.' success');           $this->convert_num ++;         }       }     }     closedir($handle);   }    /** 检查文件后缀 */   private function checkExt($file){     $name = basename($file);     $namefrag = explode('.', $name);     if(count($namefrag)>=2){       if(strtolower($namefrag[count($namefrag)-1])=='css'){ // css文件         return true;       }     }     return false;   }    /** 替换模版内容,写入csspath   * @param String $tmplfile 模版文件   * @param String $dfile  目标文件   */   private function create($tmplfile, $dfile){     $css_content = file_get_contents($tmplfile);     foreach($this->replacetags as $tag){       $css_content = str_replace($tag, $tag."?".date('YmdHis'), $css_content);     }     if(!is_dir(dirname($dfile))){  // 生成目标路径       mkdir(dirname($dfile), 0755, true);     }     file_put_contents($dfile, $css_content, true);   }    /** 输出 */   private function response($content){     echo $content."<br>";   } } ?>

demo示例程序如下:

<?php require_once "CSSUpdate.class.php";  define('ROOT_PATH', dirname(__FILE__)); $css_path = ROOT_PATH.'/css'; $csstmpl_path = ROOT_PATH.'/csstmpl'; $replacetags = array('.png', '.jpg', '.gif');  $cssobj = new CSSUpdate($csstmpl_path, $css_path, $replacetags); $cssobj->update(); ?>

完整源码点击此处本站下载。

希望本文所述对大家php程序设计的学习有所帮助。

php技术php实现的CSS更新类实例,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。