css可以写php代码,php实现的css更新类

本节内容:

更新css文件内容的php类。

1,类文件 CSSUpdate.class.php

复制代码 代码示例:

/** css 更新类,更新css文件内图片的版本

*   Date:   2013-02-05

*   Author: fdipzone

*   Ver:    1.1

*   Edit: www.jbxue.com

*   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."
";

}

}

?>

2,演示示例 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更新类的源码下载地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值