<?php
/*
* 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
*
*/
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 defined('ET3!') OR die('You are Hacker!<br>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
'Compress' =>'on' , //压缩代码
'WebURL' =>'' , //如果采用路由模式请设定真实网站地址
)
){
$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->Compress = (@$set['Compress']=='off')?0:1;
$this->version = (trim($_GET['EaseTemplateVer']))?die('Ease Templae E3!'):'';
$this->WebURL = (@$set['WebURL'] != '')?$set['WebURL']:'';
if(isset($_SERVER["PATH_INFO"]) && $this->WebURL==''){
die(ET_E_routing);
}
//载入语言文件
$this->Language = (defined('Language')?Language:( (($set['Language']!='default' && $set['Language'])?$set['Language']:'default') ));
$this->LangDir = (defined('LangDir')?LangDir:( ((@$set['LangDir']!='language' && @$set['LangDir'])?$set['LangDir']:'language') )).'/';
if(is_dir($this->LangDir)){
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';
if(!FUNCTION_EXISTS('memcache_connect')){
die(ET_E_memcache);
}
$memset = explode(":",$set['MemCache']);
$this->Emc = memcache_connect($memset[0], $memset[1]) OR die(ET_E_unconnect);
}else{
$this->RunType = (@substr(@sprintf('%o', @fileperms($this->CacheDir)), -3)==777 && is_dir($this->CacheDir))?'Cache':'Replace';
}
}
/**
* 设置数值
* 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;
//目录地址检测
if(trim($NewDir) != ''){
$search_tmp = str_replace('./','',$this->TemplateDir);
$search_tmp = PREG_REPLACE("/(^[a-z0-9A-Z]{1,100}).+/is","\\1",$search_tmp);
$this->FileDir[$this->ThisFile] = eregi($search_tmp,$NewDir)?$NewDir.'/':$this->TemplateDir.$NewDir.'/';
}else {
$this->FileDir[$this->ThisFile] = $this->TemplateDir;
}
$this->IncFile[$FileName] = $this->FileDir[$this->ThisFile].$this->ThisFile;
if(!is_file($this->IncFile[$FileName]) && $this->Copyright==1){
die(ET_E_not_exist1.$this->IncFile[$FileName].ET_E_not_exist2);
}
//bug 系统
$this->IncList[] = $this->ThisFile;
}
//解析替换程序
function ParseCode(
$FileList = '',
$CacheFile = ''
){
//模板数据
$ShowTPL = '';
//解析续载
if (@is_array($FileList) && $FileList!='include_page'){
foreach ($FileList AS $K=>$V) {
$read_file= $this->reader($V.$K);
$ShowTPL .= $this->ImgCheck($read_file, $V.$K);
}
}else{
//如果指定文件地址则载入
$SourceFile = ($FileList!='')?$FileList:$this->FileDir[$this->ThisFile].$this->ThisFile;
if(!is_file($SourceFile) && $this->Copyright==1){
die(ET_E_not_exist1.$SourceFile.ET_E_not_exist2);
}
$ShowTPL = $this->ImgCheck($this->reader($SourceFile) ,$SourceFile);
}
//引用模板处理
$ShowTPL = $this->inc_preg($ShowTPL);
//检测run方法
$run = 0;
if (eregi("run:",$ShowTPL)){
$run = 1;
//Fix =
$ShowTPL = preg_replace('/(\{|<!--\s*)run:(\}|\s*-->)\s*=/','{run:}echo ',$ShowTPL);
$ShowTPL = preg_replace('/(\{|<!--\s*)run:\s*=/','{run:echo ',$ShowTPL);
//Fix Run 1
$ShowTPL = preg_replace('/(\{|<!--\s*)run:(\}|\s*-->)\s*(.+?)\s*(\{|<!--\s*)\/run(\}|\s*-->)/is', '(T_T)\\3;(T_T!)',$ShowTPL);
}
//Fix XML
if (eregi("<?xml",$ShowTPL)){
$ShowTPL = @preg_replace('/<\?(xml.+?)\?>/is', '<ET>\\1</ET>', $ShowTPL);
}
//修复代码中\n换行错误
$ShowTPL = str_replace('\\','\\\\',$ShowTPL);
//修复双引号问题
$ShowTPL = str_replace('"','\"',$ShowTPL);
$CompileBasic = array(
'/(\{\s*|<!--\s*)inc_php:([a-zA-Z0-9_\[\]\.\,\/\?\=\#\:\;\-\|\^]{5,200})(\s*\}|\s*-->)/eis',
'/<!--\s*DEL\s*-->/is',
'/<!--\s*IF\s*(\[|\()(.+?)(\]|\))\s*-->/is',
'/<!--\s*ELSEIF\s*(\[|\()(.+?)(\]|\))\s*-->/is',
'/<!--\s*ELSE\s*-->/is',
'/<!--\s*END\s*-->/is',
'/<!--\s*([a-zA-Z0-9_\$\[\]\'\"\(\)]{2,60})\s*(AS|as)\s*(.+?)\s*-->/',
'/<!--\s*while\:\s*(.+?)\s*-->/is',
'/\{ET_Inc\:(.+?),(.+?)\}/eis',
'/(\{\s*|<!--\s*)lang\:(.+?)(\s*\}|\s*-->)/eis',
'/(\{\s*|<!--\s*)row\:(.+?)(\s*\}|\s*-->)/eis',
'/(\{\s*|<!--\s*)color\:\s*([\#0-9A-Za-z]+\,[\#0-9A-Za-z]+)(\s*\}|\s*-->)/eis',
'/(\{\s*|<!--\s*)run\:(\}|\s*-->)\s*(.+?)\s*(\{|<!--\s*)\/run(\s*\}|\s*-->)/is',
'/(\{\s*|<!--\s*)run\:(.+?)(\s*\}|\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(\\1 AS \\3){\$_i++;echo"',
'";\$_i=0;while(\\1){\$_i++;echo"',
'$this->ET_Inc("\\1","\\2")',
'$this->lang("\\2")',
'$this->Row("\\2")',
'$this->Color("\\2")',
'";\\3;echo"',
'";\\2;echo"',
'";echo \$\\1;echo"',
);
$this->Analysis = (is_array($this->Analysis))?array_merge($this->Analysis,$AnalysisBasic):$AnalysisBasic;
//编译运算
$ShowTPL = @preg_replace($this->Compile, $this->Analysis, $ShowTPL);
//分析图片地址
//$ShowTPL = $this->ImgCheck($ShowTPL,$SourceFile);
//Fix 模板中金钱符号
$ShowTPL = str_replace('
没有合适的资源?快使用搜索试试~ 我知道了~
基于PHP的模板框架EaseTemplate源码.zip
共98个文件
htm:43个
php:42个
jpg:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 85 浏览量
2023-10-15
23:53:03
上传
评论
收藏 323KB ZIP 举报
温馨提示
基于PHP的模板框架EaseTemplate源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于PHP的模板框架EaseTemplate源码.zip (98个子文件)
132699149821025975
template_test
page.htm 110B
image
fish.jpg 23KB
inc_php.php 67B
template.ease.php 2KB
index.htm 16KB
template
et_c6.htm 410B
et_b1.htm 25B
et_b7.htm 93B
et_a1.htm 12B
et_a8.htm 583B
et_c4_foot.htm 16B
et_d4.htm 191B
et_c3.htm 120B
et_c11.htm 0B
et_a3.htm 126B
et_b4.htm 389B
et_a2.htm 200B
et_b11.htm 63B
et_b9.htm 478B
et_c9.htm 206B
et_a9.htm 615B
et_c4_head.htm 15B
et_c8.htm 39B
et_b12.htm 208B
et_a7.htm 303B
et_b5.htm 431B
et_a0.htm 578B
et_c5.htm 396B
et_c10.htm 0B
et_c2.htm 378B
et_a5.htm 1KB
et_b6.htm 235B
et_b3.htm 391B
et_b7_1.htm 55B
et_b10.htm 504B
test
dusk.jpg 219KB
et_d2.htm 151B
images
banner_3.gif 37KB
60.jpg 11KB
et_b2.htm 194B
et_d1.htm 88B
et_c4_index.htm 154B
et_a4.htm 154B
et_a6.htm 73B
et_c1.htm 141B
et_b8.htm 295B
et_d3.htm 157B
et_c7.htm 171B
language
default.php 78B
cache
template.core.php 27KB
template.error.php 1KB
example
et_a
7.php 314B
1.php 211B
0.php 211B
4.php 277B
6.php 277B
3.php 277B
5.php 275B
2.php 256B
8.php 237B
9.php 305B
et_d
1.php 276B
4.php 475B
3.php 330B
2.php 317B
et_c
7.php 418B
1.php 431B
4.php 392B
6.php 444B
3.php 208B
5.php 403B
2.php 226B
8.php 644B
9.php 335B
cache_htm
.svn
prop-base
text-base
props
tmp
prop-base
text-base
props
format 2B
entries 200B
systn
test1.htm 157B
.svn
prop-base
text-base
test1.htm.svn-base 157B
props
tmp
prop-base
text-base
props
format 2B
entries 323B
Highlighter.css 5KB
files.php 6KB
Highlighter.js 15KB
et_b
7.php 569B
1.php 229B
10.php 222B
mysql.php 5KB
4.php 391B
11.php 415B
6.php 371B
3.php 231B
5.php 520B
2.php 343B
mysql.sql 409B
8.php 287B
9.php 287B
12.php 415B
shBrushXml.js 1KB
cache_htm
systn
共 98 条
- 1
资源评论
易小侠
- 粉丝: 6458
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功