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参数,可遍历子文件夹
*/
classCSSUpdate{
private$csstmpl_path=null;
private$css_path=null;
private$replacetags=array();
private$search_child=false;
private$convert_num=0;
private$is_ready=0;
/**初始化
*@paramString$csstmpl_pathcss模版路径
*@paramString$css_pathcss目标路径
*@paramArray$replacetags需要替换的图片类型
*@paramboolean$search_child是否遍历子文件夹,默认false
*/
publicfunction__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文件*/
publicfunctionupdate(){
if($this->is_ready==0){
$this->response('csstmplorcsspathorreplacetagserror');
return'';
}
$this->traversing($this->csstmpl_path);
$this->response('covertnum:'.$this->convert_num);
}
/**遍历文件夹
*@paramString$path文件路径
*/
privatefunctiontraversing($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)){//cssfile
$dfile=str_replace($this->csstmpl_path,$this->css_path,$curfile);
$this->create($curfile,$dfile);
$this->response($curfile.'convertto'.$dfile.'success');
$this->convert_num++;
}
}
}
closedir($handle);
}
/**检查文件后缀*/
privatefunctioncheckExt($file){
$name=basename($file);
$namefrag=explode('.',$name);
if(count($namefrag)>=2){
if(strtolower($namefrag[count($namefrag)-1])=='css'){//css文件
returntrue;
}
}
returnfalse;
}
/**替换模版内容,写入csspath
*@paramString$tmplfile模版文件
*@paramString$dfile目标文件
*/
privatefunctioncreate($tmplfile,$dfile){
$css_content=file_get_contents($tmplfile);
foreach($this->replacetagsas$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);
}
/**输出*/
privatefunctionresponse($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=newCSSUpdate($csstmpl_path,$css_path,$replacetags);
$cssobj->update();
?>
完整源码点击此处本站下载。
希望本文所述对大家PHP程序设计的学习有所帮助。