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程序设计的学习有所帮助。