加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现的CSS更新类实例

发布时间:2020-12-12 20:23:59 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解php实现的CSS更新类及其用法,非常实用。供大家参考研究。具体如下: CSSUpdate.class.php类文件如下: class CSSUpdate{ private $csstmpl_path = null; private $css_path = null; private $replacetags = array(); private $search_c

本篇章节讲解php实现的CSS更新类及其用法,非常实用。分享给大家供大家参考。具体如下:

CSSUpdate.class.php类文件如下:

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."
";
}
}
?>

demo示例程序如下:

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,$replacetags);
$cssobj->update();
?>

完整源码点击此处。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读