php实现的CSS更新类实例
程序员文章站
2023-02-08 10:17:58
本文实例讲述了php实现的css更新类及其用法,非常实用。分享给大家供大家参考。具体如下:
cssupdate.class.php类文件如下:
...
本文实例讲述了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); } /** 输出 */ 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程序设计的学习有所帮助。
推荐阅读
-
PHP使用反射机制实现查找类和方法的所在位置_PHP
-
php的mssql数据库连接类实例
-
PHP里的单例类写法实例_php实例
-
Symfony2实现在controller中获取url的方法_php实例
-
php实现的九九乘法口诀表简洁版_php实例
-
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法_php实例
-
php实现的IMEI限制的短信验证码发送类,imei验证码_PHP教程
-
php批量添加数据与批量更新数据的实现方法
-
ThinkPHP6源码:从Http类的实例化看依赖注入是如何实现的
-
Nine Million Bicycles PHP实现MySQL更新记录的代码