php实现的CSS更新类实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-04-14 10:51:22 浏览: 评论:0
这篇文章主要介绍了php实现的CSS更新类及其用法实例,包括了针对模板文件的检查、更新与替换模板文件等功能,非常实用,需要的朋友可以参考下
本文实例讲述了php实现的CSS更新类及其用法,非常实用。分享给大家供大家参考。具体如下:
CSSUpdate.class.php类文件如下:
- <?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);
- } //www.phpfensi.com
- /** 输出 */
- private function response($content){
- echo $content."<br>";
- }
- }
- ?>
demo示例程序如下:
- <?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();
- ?>
Tags: php更新类
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)