程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現的CSS更新類實例

php實現的CSS更新類實例

編輯:關於PHP編程

     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){        $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示例程序如下:

    1 2 3 4 5 6 7 8 9 10 11 <?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();  ?>
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved