/*
* 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 ' | |||||
|
}
}
}
?>