/*

* Edition:ET080708

* Desc:Core Engine 3 (Memcache/Compile/Replace)

* File:template.core.php

* Author:David Meng

* Site:http://www.systn.com

* Email:mdchinese@gmail.com

*

*/

error_reporting(0);

define("ET3!",TRUE);

class ETCore{

var $ThisFile= '';//当前文件

var $IncFile= '';//引入文件

var $ThisValue= array();//当前数值

var $FileList= array();//载入文件列表

var $IncList= array();//引入文件列表

var $ImgDir= array('images');//图片地址目录

var $HtmDir= 'cache_htm/';//静态存放的目录

var $HtmID= '';//静态文件ID

var $HtmTime= '180';//秒为单位,默认三分钟

var $AutoImage= 1;//自动解析图片目录开关默认值

var $Hacker= "<?php if(!defined('ET3!')){die('You are Hacker!
Power by Ease Template!');}";

var $Compile= array();

var $Analysis= array();

var $Emc= array();

/**

*声明模板用法

*/

function ETCoreStart(

$set = array(

'ID' =>'1',//缓存ID

'TplType' =>'htm',//模板格式

'CacheDir' =>'cache',//缓存目录

'TemplateDir'=>'template' ,//模板存放目录

'AutoImage' =>'on' ,//自动解析图片目录开关 on表示开放 off表示关闭

'LangDir' =>'language' ,//语言文件存放的目录

'Language' =>'default' ,//语言的默认文件

'Copyright' =>'off' ,//版权保护

'MemCache' =>'' ,//Memcache服务器地址例如:127.0.0.1:11211

)

){

$this->TplID= (defined('TemplateID')?TemplateID:( ((int)@$set['ID']<=1)?1:(int)$set['ID']) ).'_';

$this->CacheDir = (defined('NewCache')?NewCache:( (trim($set['CacheDir']) != '')?$set['CacheDir']:'cache') ).'/';

$this->TemplateDir= (defined('NewTemplate')?NewTemplate:( (trim($set['TemplateDir']) != '')?$set['TemplateDir']:'template') ).'/';

$this->Ext= (@$set['TplType'] != '')?$set['TplType']:'htm';

$this->AutoImage= (@$set['AutoImage']=='off')?0:1;

$this->Copyright= (@$set['Copyright']=='off')?0:1;

$this->Server= (is_array($GLOBALS['_SERVER']))?$GLOBALS['_SERVER']:$_SERVER;

$this->version= (trim($_GET['EaseTemplateVer']))?die('Ease Templae E3!'):'';

//载入语言文件

$this->LangDir= (defined('LangDir')?LangDir:( ((@$set['LangDir']!='language' && @$set['LangDir'])?$set['LangDir']:'language') )).'/';

if(is_dir($this->LangDir)){

$this->Language= (defined('Language')?Language:( (($set['Language']!='default' && $set['Language'])?$set['Language']:'default') ));

if(@is_file($this->LangDir.$this->Language.'.php')){

$lang = array();

@include_once $this->LangDir.$this->Language.'.php';

$this->LangData = $lang;

}

}else{

$this->Language = 'default';

}

//缓存目录检测以及运行模式

if(@ereg(':',$set['MemCache'])){

$this->RunType= 'MemCache';

$memset= explode(":",$set['MemCache']);

$this->Emc= memcache_connect($memset[0], $memset[1]) OR die("Could not connect!");

}else{

$this->RunType= (@substr(@sprintf('%o', @fileperms($this->CacheDir)), -3)==777 && is_dir($this->CacheDir))?'Cache':'Replace';

}

$CompileBasic = array(

'/(\{\s*|)/eis',

'//is',

'//is',

'//is',

'//is',

'//is',

'//',

'//is',

'/(\{\s*|)/eis',

'/(\{\s*|)/eis',

'/(\{\s*|)/eis',

'/(\{\s*|)/eis',

'/(\{\s*|)\s*(.+?)\s*(\{|)/is',

'/(\{\s*|)/is',

'/\{([a-zA-Z0-9_\'\"\[\]\$]{1,100})\}/',

);

$this->Compile = (is_array($this->Compile))?array_merge($this->Compile,$CompileBasic):$CompileBasic;

$AnalysisBasic = array(

'$this->inc_php("\\2")',

'";if($ET_Del==true){echo"',

'";if(\\2){echo"',

'";}elseif(\\2){echo"',

'";}else{echo"',

'";}echo"',

'";\$_i=0;foreach((array)\\1 AS \\3){\$_i++;echo"',

'";\$_i=0;while(\\1){\$_i++;echo"',

'$this->lang("\\2")',

'$this->Row("\\2")',

'$this->Color("\\2")',

'$this->Dirs("\\2")',

'";\\3;echo"',

'";\\2;echo"',

'";echo \$\\1;echo"',

);

$this->Analysis = (is_array($this->Analysis))?array_merge($this->Analysis,$AnalysisBasic):$AnalysisBasic;

}

/**

*设置数值

*set_var(变量名或是数组,设置数值[数组不设置此值]);

*/

function set_var(

$name,

$value = ''

){

if (is_array($name)){

$this->ThisValue = @array_merge($this->ThisValue,$name);

}else{

$this->ThisValue[$name] = $value;

}

}

/**

*设置模板文件

*set_file(文件名,设置目录);

*/

function set_file(

$FileName,

$NewDir = ''

){

//当前模板名

$this->ThisFile = $FileName.'.'.$this->Ext;

//目录地址检测

$this->FileDir[$this->ThisFile] = (trim($NewDir) != '')?$NewDir.'/':$this->TemplateDir;

$this->IncFile[$FileName] = $this->FileDir[$this->ThisFile].$this->ThisFile;

if(!is_file($this->IncFile[$FileName]) && $this->Copyright==1){

die('Sorry, The file '.$this->IncFile[$FileName].' does not exist.');

}

//bug 系统

$this->IncList[] = $this->ThisFile;

}

//解析替换程序

function ParseCode(

$FileList = '',

$CacheFile = ''

){

//模板数据

$ShowTPL = '';

//解析续载

if (@is_array($FileList) && $FileList!='include_page'){

foreach ($FileList AS $K=>$V) {

$ShowTPL .= $this->reader($V.$K);

}

}else{

//如果指定文件地址则载入

$SourceFile = ($FileList!='')?$FileList:$this->FileDir[$this->ThisFile].$this->ThisFile;

if(!is_file($SourceFile) && $this->Copyright==1){

die('Sorry, The file '.$SourceFile.' does not exist.');

}

$ShowTPL = $this->reader($SourceFile);

}

//引用模板处理

$ShowTPL = $this->inc_preg($ShowTPL);

//检测run方法

$run = 0;

if (eregi("run:",$ShowTPL)){

$run = 1;

//Fix =

$ShowTPL = preg_replace('/(\{|)\s*=/','{run:}echo ',$ShowTPL);

$ShowTPL = preg_replace('/(\{|)\s*(.+?)\s*(\{|)/is', '(T_T)\\3;(T_T!)',$ShowTPL);

}

//Fix XML

if (eregi("<?xml ",$ShowTPL)){

$ShowTPL = @preg_replace('//is', '\\1', $ShowTPL);

}

//修复代码中\n换行错误

$ShowTPL = str_replace('\\','\\\\',$ShowTPL);

//修复双引号问题

$ShowTPL = str_replace('"','\"',$ShowTPL);

//编译运算

$ShowTPL = @preg_replace($this->Compile, $this->Analysis, $ShowTPL);

//分析图片地址

$ShowTPL = $this->ImgCheck($ShowTPL);

//Fix 模板中金钱符号

$ShowTPL = str_replace('$','\$',$ShowTPL);

//修复php运行错误

$ShowTPL = @preg_replace("/\";(.+?)echo\"/e", '$this->FixPHP(\'\\1\')', $ShowTPL);

//Fix Run 2

if ($run==1){

$ShowTPL = preg_replace("/\(T_T\)(.+?)\(T_T!\)/ise", '$this->FixPHP(\'\\1\')', $ShowTPL);

}

//还原xml

$ShowTPL = (strrpos($ShowTPL,''))?@preg_replace('/ET>(.+?)

//修复"问题

$ShowTPL = str_replace('echo ""','echo "\"',$ShowTPL);

//从数组中将变量导入到当前的符号表

@extract($this->Value());

ob_start();

ob_implicit_flush(0);

@eval('echo "'.$ShowTPL.'";');

$contents = ob_get_contents();

ob_end_clean();

//Cache htm

if($this->HtmID){

$this->writer($this->HtmDir.$this->HtmID,$this->Hacker."?>".$contents);

}

//编译模板

if ($this->RunType=='Cache'){

$this->CompilePHP($ShowTPL,$CacheFile);

}

//错误检查

if(strlen($contents)<=0){

//echo $ShowTPL;

die('
Sorry, Error or complicated syntax error exists in '.$SourceFile.' file.');

}

return $contents;

}

/**

* 多语言

*/

function lang(

$str = ''

){

if (is_dir($this->LangDir)){

//采用MD5效验

$id = md5($str);

//不存在数据则写入

if($this->LangData[$id]=='' && $this->Language=='default'){

//语言包文件

if (@is_file($this->LangDir.$this->Language.'.php')){

unset($lang);

@include($this->LangDir.$this->Language.'.php');

}

//如果检测到有数据则输出

if ($lang[$id]){

$out= str_replace('\\','\\\\',$lang[$id]);

return str_replace('"','\"',$out);

}

//修复'多\问题

$str = str_replace("\\'","'",$str);

//语言文件过大时采取建立新文件

if(strlen($docs)>400){

$this->writer($this->LangDir.$this->Language.'.'.$id.'.php',' $etl = "'.$str.'";?>');

$docs= substr($str,0,40);//简要说明

$docs = str_replace('\"','"',$docs);

$docs = str_replace('\\\\','\\',$docs);

$str = 'o(O_O)o.ET Lang.o(*_*)o';//语言新文件

}else{

$docs = str_replace('\"','"',$str);

$docs = str_replace('\\\\','\\',$docs);

}

//文件安全处理

$data = (!is_file($this->LangDir.'default.php'))?"\n/**\n/* SYSTN ET Language For ".$this->Language."\n*/\n\n\n":'';

if (trim($str)){

//写入数据

$data .= "/**".date("Y.m.d",time())."\n";

$data.= $docs."\n";

$data.= "*/\n";

$data.= '$lang["'.$id.'"] = "'.$str.'";'."\n\n";

$this->writer($this->LangDir.'default.php',$data,'a+');

}

}

//单独语言文件包

if($this->LangData[$id]=='o(O_O)o.ET Lang.o(*_*)o'){

unset($etl);

include($this->LangDir.$this->Language.".".$id.".php");

$this->LangData[$id] = $etl;

}

$out = ($this->LangData[$id])?$this->LangData[$id]:$str;

//输出部分要做处理

if(($this->RunType=='Replace' || $this->RunType!='Replace') && $data==''){

$out= str_replace('\\','\\\\',$out);

$out= str_replace('"','\"',$out);

}

return $out;

}else{

return $str;

}

}

/**

* inc引用函数

*/

function inc_preg(

$content

){

return preg_replace('//eis', '$this->inc("\\2")', preg_replace('/(\{\s*|)/eis', '$this->inc("\\2")', $content));

}

/**

* 引用函数运算

*/

function inc(

$Files = ''

){

if($Files){

if (!strrpos($Files,$this->Ext)){

$Files= $Files.".".$this->Ext;

}

$FileLs= $this->TemplateDir.$Files;

$contents=$this->ParseCode($FileLs,$Files);

if($this->RunType=='Cache'){

//引用模板

$this->IncList[] = $Files;

$cache_file = $this->CacheDir.$this->TplID.$Files.".".$this->Language.".php";

return "

{inc_php:".$cache_file."}

{run:@eval('echo \"'.\$EaseTemplate3_Cache.'\";')}

";

}elseif($this->RunType=='MemCache'){

//cache date

memcache_set($this->Emc,$Files.'_date', time()) OR die("Failed to save data at the server.");

memcache_set($this->Emc,$Files, $contents) OR die("Failed to save data at the server");

return "".$contents;

}else{

//引用模板

$this->IncList[] = $Files;

return $contents;

}

}

}

/**

* 编译解析处理

*/

function CompilePHP(

$content='',

$cachename = ''

){

if ($content){

//如果没有安全文件则自动创建

if($this->RunType=='Cache' && !is_file($this->CacheDir.'index.htm')){

$Ease_name = 'Ease Template!';

$Ease_base = "

$Ease_name $Ease_name";

$this->writer($this->CacheDir.'index.htm',$Ease_base);

$this->writer($this->CacheDir.'index.html',$Ease_base);

$this->writer($this->CacheDir.'default.htm',$Ease_base);

}

//编译记录

$content = str_replace("\\","\\\\",$content);

$content = str_replace("'","\'",$content);

$content = str_replace('echo"";',"",$content);//替换多余数据

$wfile = ($cachename)?$cachename:$this->ThisFile;

$this->writer($this->FileName($wfile,$this->TplID) ,$this->Hacker.'$EaseTemplate3_Cache = \''.$content.'\';');

}

}

//修复PHP执行时产生的错误

function FixPHP(

$content=''

){

$content = str_replace('\\\\','\\',$content);

return '";'.str_replace('\\"','"',str_replace('\$','$',$content)).'echo"';

}

/**

* 检测缓存是否要更新

*filename缓存文件名

*settime指定事件则提供更新,只用于memcache

*/

function FileUpdate($filname,$settime=0){

//检测设置模板文件

if (is_array($this->IncFile)){

unset($k,$v);

$update= 0;

$settime= ($settime>0)?$settime:@filemtime($filname);

foreach ($this->IncFile AS $k=>$v) {

if (@filemtime($v)>$settime){$update = 1;}

}

//更新缓存

if($update==1){

return false;

}else {

return $filname;

}

}else{

return $filname;

}

}

/**

*输出运算

* Filename连载编译输出文件名

*/

function output(

$Filename = ''

){

switch($this->RunType){

//Mem编译模式

case'MemCache':

if ($Filename=='include_page'){

//直接输出文件

return $this->reader($this->FileDir[$this->ThisFile].$this->ThisFile);

}else{

$FileNames= ($Filename)?$Filename:$this->ThisFile;

$CacheFile= $this->FileName($FileNames,$this->TplID);

//检测记录时间

$updateT= memcache_get($this->Emc,$CacheFile.'_date');

$update= $this->FileUpdate($CacheFile,$updateT);

$CacheData = memcache_get($this->Emc,$CacheFile);

if(trim($CacheData) && $update){

//获得列表文件

unset($ks,$vs);

preg_match_all('//',$CacheData, $IncFile);

if (is_array($IncFile[1])){

foreach ($IncFile[1] AS $ks=>$vs) {

$this->IncList[] = $vs;

$listDate= memcache_get($this->Emc,$vs.'_date');

echo @filemtime($this->TemplateDir.$vs).' - '.$listDate.'
';

//更新inc缓存

if (@filemtime($this->TemplateDir.$vs)>$listDate){

$update = 1;

$this->inc($vs);

}

}

//更新数据

if ($update == 1){

$CacheData= $this->ParseCode($this->FileList,$Filename);

//cache date

@memcache_set($this->Emc,$CacheFile.'_date', time()) OR die("Failed to save data at the server.");

@memcache_set($this->Emc,$CacheFile, $CacheData) OR die("Failed to save data at the server.");

}

}

//Close

memcache_close($this->Emc);

return $CacheData;

}else{

if ($Filename){

$CacheData= $this->ParseCode($this->FileList,$Filename);

//cache date

@memcache_set($this->Emc,$CacheFile.'_date', time()) OR die("Failed to save data at the server.");

@memcache_set($this->Emc,$CacheFile, $CacheData) OR die("Failed to save data at the server.");

//Close

memcache_close($this->Emc);

return $CacheData;

}else{

$CacheData= $this->ParseCode();

//cache date

@memcache_set($this->Emc,$CacheFile.'_date', time()) OR die("Failed to save data at the server.");

@memcache_set($this->Emc,$CacheFile, $CacheData) OR die("Failed to save data at the server2");

//Close

memcache_close($this->Emc);

return $CacheData;

}

}

}

break;

//编译模式

case'Cache':

if ($Filename=='include_page'){

//直接输出文件

return $this->reader($this->FileDir[$this->ThisFile].$this->ThisFile);

}else{

$FileNames = ($Filename)?$Filename:$this->ThisFile;

$CacheFile = $this->FileName($FileNames,$this->TplID);

$CacheFile = $this->FileUpdate($CacheFile);

if (@is_file($CacheFile)){

@extract($this->Value());

ob_start();

ob_implicit_flush(0);

include $CacheFile;

//获得列表文件

if($EaseTemplate3_Cache!=''){

unset($ks,$vs);

preg_match_all('//',$EaseTemplate3_Cache, $IncFile);

if (is_array($IncFile[1])){

foreach ($IncFile[1] AS $ks=>$vs) {

$this->IncList[] = $vs;

//更新inc缓存

if (@filemtime($this->TemplateDir.$vs)>@filemtime($this->CacheDir.$this->TplID.$vs.'.'.$this->Language.'.php')){

$this->inc($vs);

}

}

}

@eval('echo "'.$EaseTemplate3_Cache.'";');

$contents = ob_get_contents();

ob_end_clean();

return $contents;

}

}else{

if ($Filename){

return $this->ParseCode($this->FileList,$Filename);

}else{

return $this->ParseCode();

}

}

}

break;

//替换引擎

default:

if($Filename){

if ($Filename=='include_page'){

//直接输出文件

return $this->reader($this->FileDir[$this->ThisFile].$this->ThisFile);

}else {

return $this->ParseCode($this->FileList);

}

}else{

return $this->ParseCode();

}

}

}

/**

* 连载函数

*/

function n(){

//连载模板

$this->FileList[$this->ThisFile] = $this->FileDir[$this->ThisFile];

}

/**

*输出模板内容

* Filename连载编译输出文件名

*/

function r(

$Filename = ''

){

return $this->output($Filename);

}

/**

*打印模板内容

* Filename连载编译输出文件名

*/

function p(

$Filename = ''

){

echo $this->output($Filename);

}

/**

*分析图片地址

*/

function ImgCheck(

$content

){

//Check Image Dir

if($this->AutoImage==1){

$NewFileDir = $this->FileDir[$this->ThisFile];

//FIX img

if(is_array($this->ImgDir)){

foreach($this->ImgDir AS $rep){

$rep = trim($rep);

//检测是否执行替换

if(strrpos($content,$rep."/")){

if(substr($rep,-1)=='/'){

$rep = substr($rep,0,strlen($rep)-1);

}

$content = str_replace($rep.'/',$NewFileDir.$rep.'/',$content);

}

}

}

//FIX Dir

$NewFileDirs = $NewFileDir.$NewFileDir;

if(strrpos($content,$NewFileDirs)){

$content = str_replace($NewFileDirs,$NewFileDir,$content);

}

}

return $content;

}

/**

*获得所有设置与公共变量

*/

function Value(){

return (is_array($this->ThisValue))?array_merge($this->ThisValue,$GLOBALS):$GLOBALS;

}

/**

*清除设置

*/

function clear(){

$this->RunType = 'Replace';

}

/**

* 静态文件写入

*/

function htm_w(

$w_dir = '',

$w_filename = '',

$w_content = ''

){

$dvs = '';

if($w_dir && $w_filename && $w_content){

//目录检测数量

$w_dir_ex = explode('/',$w_dir);

$w_new_dir = '';//处理后的写入目录

unset($dvs,$fdk,$fdv,$w_dir_len);

foreach((array)$w_dir_ex AS $dvs){

if(trim($dvs) && $dvs!='..'){

$w_dir_len .= '../';

$w_new_dir .= $dvs.'/';

if (!@is_dir($w_new_dir)) @mkdir($w_new_dir, 0777);

}

}

//获得需要更改的目录数

foreach((array)$this->FileDir AS $fdk=>$fdv){

$w_content = str_replace($fdv,$w_dir_len.str_replace('../','',$fdv),$w_content);

}

$this->writer($w_dir.$w_filename,$w_content);

}

}

/**

* 改变静态刷新时间

*/

function htm_time($times=0){

if((int)$times>0){

$this->HtmTime = (int)$times;

}

}

/**

* 静态文件存放的绝对目录

*/

function htm_dir($Name = ''){

if(trim($Name)){

$this->HtmDir = trim($Name).'/';

}

}

/**

* 产生静态文件输出

*/

function HtmCheck(

$Name = ''

){

$this->HtmID = md5(trim($Name)? trim($Name).'.php' : $this->Server['REQUEST_URI'].'.php' );

//检测时间

if(is_file($this->HtmDir.$this->HtmID) && (time() - @filemtime($this->HtmDir.$this->HtmID)<=$this->HtmTime)){

ob_start();

ob_implicit_flush(0);

include $this->HtmDir.$this->HtmID;

$HtmContent = ob_get_contents();

ob_end_clean();

return $HtmContent;

}

}

/**

* 打印静态内容

*/

function htm_p(

$Name = ''

){

$output = $this->HtmCheck($Name);

if ($output){

die($this->HtmCheck($Name));

}

}

/**

* 输出静态内容

*/

function htm_r(

$Name = ''

){

return $this->HtmCheck($Name);

}

/**

*解析文件

*/

function FileName(

$name,

$id = '1'

){

$extdir = explode("/",$name);

$dircnt = @count($extdir) - 1;

$extdir[$dircnt] = $id.$extdir[$dircnt];

return $this->CacheDir.implode("_",$extdir).".".$this->Language.'.php';

}

/**

* 检测引入文件

*/

function inc_php(

$url = ''

){

$parse= parse_url($url);

unset($vals,$code_array);

foreach((array)explode('&',$parse['query']) AS $vals){

$code_array .= preg_replace('/(.+)=(.+)/',"\$_GET['\\1']= \$\\1 ='\\2';",$vals);

}

return '";'.$code_array.' @include(\''.$parse['path'].'\');echo"';

}

/**

*换行函数

*Row(换行数,换行颜色);

*Row("5,#ffffff:#e1e1e1");

*/

function Row(

$Num = ''

){

$Num = trim($Num);

if($Num != ''){

$Nums = explode(",",$Num);

$Numr = ((int)$Nums[0]>0)?(int)$Nums[0]:2;

$input = (trim($Nums[1]) == '')?'

':$Nums[1];

if(trim($Nums[1]) != ''){

$Co = explode(":",$Nums[1]);

$OutStr = "if(\$_i%$Numr===0){\$row_count++;echo(\$row_count%2===0)?'

':'';}";

}else{

$OutStr = "if(\$_i%$Numr===0){echo '$input';}";

}

return '";'.$OutStr.'echo "';

}

}

/**

*间隔变色

*Color(两组颜色代码);

*Color('#FFFFFF,#DCDCDC');

*/

function Color(

$color = ''

){

if($color != ''){

$OutStr = preg_replace("/(.+),(.+)/","_i%2===0)?'\\1':'\\2';",$color);

if(strrpos($OutStr,"%2")){

return '";echo(\$'.$OutStr.'echo "';

}

}

}

/**

*映射图片地址

*/

function Dirs(

$adds = ''

){

$adds_ary = explode(",",$adds);

if(is_array($adds_ary)){

$this->ImgDir = (is_array($this->ImgDir))?@array_merge($adds_ary, $this->ImgDir):$adds_ary;

}

}

/**

*读取函数

*reader(文件名);

*/

function reader(

$filename

){

$get_fun = @get_defined_functions();

return (in_array('file_get_contents',$get_fun['internal']))?@file_get_contents($filename):@implode("", @file($filename));

}

/**

*写入函数

*writer(文件名,写入数据, 写入数据方式);

*/

function writer(

$filename,

$data = '',

$mode='w'

){

if(trim($filename)){

$file = @fopen($filename, $mode);

$filedata = @fwrite($file, $data);

@fclose($file);

}

if(!is_file($filename)){

die('Sorry,'.$filename.' file write in failed!');

}

}

/**

*引入模板系统

*察看当前使用的模板以及调试信息

*/

function inc_list(){

if(is_array($this->IncList)){

$EXTS = explode("/",$this->Server['REQUEST_URI']);

$Last = count($EXTS) -1;

//处理清除工作 START

if(strrpos($EXTS[$Last],'Ease_Templatepage=Clear') && trim($EXTS[$Last]) != ''){

$dir_name = $this->CacheDir;

if(file_exists($dir_name)){

$handle=@opendir($dir_name);

while($tmp_file=@readdir($handle)){

if(@file_exists($dir_name.$tmp_file)){

@unlink($dir_name.$tmp_file);

}

}

@closedir($handle);

}

$GoURL = urldecode(preg_replace("/.+?REFERER=(.+?)!!!/","\\1",$EXTS[$Last]));

die('');

}

//处理清除工作 END

$list_file= array();

$file_nums= count($this->IncList);

$AllSize= 0;

foreach($this->IncList AS $Ks=>$Vs){

$FSize[$Ks] = @filesize($this->TemplateDir.$Vs);

$AllSize += $FSize[$Ks];

}

foreach($this->IncList AS $K=>$V){

$File_Size = @round($FSize[$K] / 1024 * 100) / 100 . 'KB';

$Fwidth = @floor(100*$FSize[$K]/$AllSize);

$list_file[] = "

".$this->TemplateDir.$V."

".$File_Size."

";

}

//连接地址

$BackURL = preg_replace("/.+\//","\\1",$this->Server['REQUEST_URI']);

$NowPAGE = 'http://'.$this->Server['HTTP_HOST'].$this->Server['SCRIPT_NAME'];

$clear_link = $NowPAGE."?Ease_Templatepage=Clear&REFERER=".urlencode($BackURL)."!!!";

$sf13 = ' style="font-size:13px;color:#666666"';

echo '

Include Templates (Num:'.count($this-> IncList).')';

if($this->RunType=='Cache'){

echo '[Clear Cache]';

}

echo '

Cache File ID: '.substr($this->TplID,0,-1).'Index: '.((count($this->FileList)==0)?'False':'True').'Format: '.$this->Ext.'Cache: '.($this->RunType=='MemCache'?'Memcache Engine':($this->RunType == 'Replace'?'Replace Engine':$this->CacheDir)).'Template: '.$this->TemplateDir.'
";

}

}

}

?>

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐