服务器之家

服务器之家 > 正文

php实现的CSS更新类实例

时间:2020-07-29 15:31     来源/作者:PHP教程网

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

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();
?>

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

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

标签:
PHP css 

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国 2021-05-08
返回顶部