您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> php编程 >> 正文

php实现的CSS更新类实例

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 CSSUpdate.class.php类文件如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 <?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){     &nbs