找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1713|回复: 0
打印 上一主题 下一主题

php实现的CSS更新类实例

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:54:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了php实现的CSS更新类及其用法,非常实用。分享给大家供大家参考。具体如下:
CSSUpdate.class.php类文件如下:
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示例程序如下:
update();
?>
完整源码点击此处本站下载
希望本文所述对大家PHP程序设计的学习有所帮助。
            
            
您可能感兴趣的文章:
  • PHP更新购物车数量(表单部分/PHP处理部分)
  • PHP中copy on write写时复制机制介绍
  • PHP 之 写时复制介绍(Copy On Write)
  • PHP定时更新程序设计思路分享
  • PHP中调用SVN命令更新网站方法
  • php强制更新图片缓存的方法
  • php不使用copy()函数复制文件的方法
  • php使用COPY函数更新配置文件的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端