总结
豆包 AI 助手文章总结

php CSS Update Class的相关内容讲解

jacklove
发布: 2018-06-11 13:36:59
原创
2277人浏览过

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);
    }
    /** 输出 */
    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();
?>
登录后复制

本文讲解了php CSS Update Class的相关内容,更多相关内容请关注php中文网。

相关推荐:

关于php __call 与 __callStatic 的内容讲解

关于memcached 常用命令及使用说明

关于PHPMailer - PHP email transport class 的相关讲解

以上就是php CSS Update Class的相关内容讲解的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号