发一个自己写的模板函数
时间:2008-07-03
来源:互联网
自己写的模板函数 随便用和改 写的不对的不要骂就可以了
复制PHP内容到剪贴板
<?php
define('DEFAULT_TEMPLATE', 'templates');
define('DEFAULT_TEMPLATE_C', 'templates_c');
define('TEMPLATE_DEPLOY', true);
function template($FileName, $TemplateDir='', $ComplieDir='', $op = ''){
$str = '';
$TemplateDir = empty($TemplateDir) ? DEFAULT_TEMPLATE : $TemplateDir;
$ComplieDir = empty($ComplieDir) ? DEFAULT_TEMPLATE_C : $ComplieDir;
if(TEMPLATE_DEPLOY === false) {
$comtime = @filemtime($ComplieDir . "/" . md5($FileName).".php");
$temtime = @filemtime($TemplateDir . "/" . $FileName);
$str = file_get_contents($TemplateDir . "/" . $FileName);
$checktemplate = preg_match('|{template (.*)}|isU', $str);
}
if(($temtime > $comtime && TEMPLATE_DEPLOY === false) || $checktemplate){
if(empty($str)) {
$str = file_get_contents($TemplateDir . "/" . $FileName);
}
$str = preg_replace('|<!--{if (.+)}-->|isU', '<?php if(\\1){ ?>', $str);
$str = preg_replace('|<!--{/if}-->|isU', '<?php } ?>', $str);
$str = preg_replace('|{_(.*)}|isU', '<?php echo \\1; ?>', $str);
$str = preg_replace('|{\$lang_(.*)}|isU', '<?php echo $language["\\1"]; ?>', $str);
$str = preg_replace('|{\$(.*)}|isU', '<?php echo $\\1; ?>', $str);
$str = preg_replace('|<!--{else}-->|isU', '<?php }else{ ?>', $str);
$str = preg_replace('|<!--{elseif (.*)}-->|isU', '<?php }elseif(\\1){ ?>', $str);
$str = preg_replace('|{eval (.*)}|isU', '<?php \\1; ?>', $str);
$str = preg_replace('|{echo (.*)}|isU', '<?php echo \\1; ?>', $str);
if(preg_match_all('|{include_php (.*)}|isU', $str, $phparray)) {
$phpfilename = $phparray[1][0] . ".php";
if(is_file($phpfilename)) {
$phpcontent = str_replace("<?php", "<?", file_get_contents($phpfilename));
$phpcontent = str_replace("?>", " ?>", $phpcontent);
$phpcontent = str_replace("<?", "<?php ", $phpcontent);
$str = $str . $phpcontent;
}
$str = preg_replace('|{include_php (.*)}|isU', '', $str);
}
$str = preg_replace('|{include_htm(.*) (.*)}|isU', '<?php if(is_file("' . $TemplateDir . '/\\2.htm\\1")){ $__Dstr = file_get_contents("' . $TemplateDir . '/\\2.htm\\1"); echo $__Dstr;} ?>', $str);
$str = preg_replace('|<!--{loop (.*) (.*) (.*)}-->|isU', '<?php if(is_array(\\1)){ foreach(\\1 as \\2 => \\3){ ?>', $str);
$str = preg_replace('|<!--{for (.*)}-->|isU', '<?php for (\\1) { ?>', $str);
$str = preg_replace('|<!--{/for}-->|isU', '<?php } ?>', $str);
$str = preg_replace('|<!--{/loop}-->|isU', '<?php }} ?>', $str);
if(preg_match_all('|{template (.*)}|isU', $str, $templatearray)) {
$str = preg_replace('|{template (.*)}|isU', '', $str);
$templatefilename = $templatearray[1][0];
if(is_file($TemplateDir . '/' .$templatefilename)) {
$templatecontent = template($templatefilename, $TemplateDir, $ComplieDir, 1);
$str = $str . $templatecontent;
}
}
$str = preg_replace('|\t|isU', '', $str);
$str = preg_replace('|\r\n|isU', '', $str);
$str = preg_replace('|\n|isU', '', $str);
$str = preg_replace('|(\?\>\<\?php)|isU', '', $str);
if(!$op) {
@file_put_contents($ComplieDir . "/" . md5($FileName) . '.php', $str);
}
}
if($op) {
return $str;
}
return $ComplieDir . "/" . md5($FileName) . '.php';
}
[ 本帖最后由 zshtom 于 2008-7-2 23:34 编辑 ] PHP代码:
<?php
define('DEFAULT_TEMPLATE', 'templates');
define('DEFAULT_TEMPLATE_C', 'templates_c');
define('TEMPLATE_DEPLOY', true);
function template($FileName, $TemplateDir='', $ComplieDir='', $op = ''){
$str = '';
$TemplateDir = empty($TemplateDir) ? DEFAULT_TEMPLATE : $TemplateDir;
$ComplieDir = empty($ComplieDir) ? DEFAULT_TEMPLATE_C : $ComplieDir;
if(TEMPLATE_DEPLOY === false) {
$comtime = @filemtime($ComplieDir . "/" . md5($FileName).".php");
$temtime = @filemtime($TemplateDir . "/" . $FileName);
$str = file_get_contents($TemplateDir . "/" . $FileName);
$checktemplate = preg_match('|{template (.*)}|isU', $str);
}
if(($temtime > $comtime && TEMPLATE_DEPLOY === false) || $checktemplate){
if(empty($str)) {
$str = file_get_contents($TemplateDir . "/" . $FileName);
}
$str = preg_replace('|<!--{if (.+)}-->|isU', '<?php if(\\1){ ?>', $str);
$str = preg_replace('|<!--{/if}-->|isU', '<?php } ?>', $str);
$str = preg_replace('|{_(.*)}|isU', '<?php echo \\1; ?>', $str);
$str = preg_replace('|{\$lang_(.*)}|isU', '<?php echo $language["\\1"]; ?>', $str);
$str = preg_replace('|{\$(.*)}|isU', '<?php echo $\\1; ?>', $str);
$str = preg_replace('|<!--{else}-->|isU', '<?php }else{ ?>', $str);
$str = preg_replace('|<!--{elseif (.*)}-->|isU', '<?php }elseif(\\1){ ?>', $str);
$str = preg_replace('|{eval (.*)}|isU', '<?php \\1; ?>', $str);
$str = preg_replace('|{echo (.*)}|isU', '<?php echo \\1; ?>', $str);
if(preg_match_all('|{include_php (.*)}|isU', $str, $phparray)) {
$phpfilename = $phparray[1][0] . ".php";
if(is_file($phpfilename)) {
$phpcontent = str_replace("<?php", "<?", file_get_contents($phpfilename));
$phpcontent = str_replace("?>", " ?>", $phpcontent);
$phpcontent = str_replace("<?", "<?php ", $phpcontent);
$str = $str . $phpcontent;
}
$str = preg_replace('|{include_php (.*)}|isU', '', $str);
}
$str = preg_replace('|{include_htm(.*) (.*)}|isU', '<?php if(is_file("' . $TemplateDir . '/\\2.htm\\1")){ $__Dstr = file_get_contents("' . $TemplateDir . '/\\2.htm\\1"); echo $__Dstr;} ?>', $str);
$str = preg_replace('|<!--{loop (.*) (.*) (.*)}-->|isU', '<?php if(is_array(\\1)){ foreach(\\1 as \\2 => \\3){ ?>', $str);
$str = preg_replace('|<!--{for (.*)}-->|isU', '<?php for (\\1) { ?>', $str);
$str = preg_replace('|<!--{/for}-->|isU', '<?php } ?>', $str);
$str = preg_replace('|<!--{/loop}-->|isU', '<?php }} ?>', $str);
if(preg_match_all('|{template (.*)}|isU', $str, $templatearray)) {
$str = preg_replace('|{template (.*)}|isU', '', $str);
$templatefilename = $templatearray[1][0];
if(is_file($TemplateDir . '/' .$templatefilename)) {
$templatecontent = template($templatefilename, $TemplateDir, $ComplieDir, 1);
$str = $str . $templatecontent;
}
}
$str = preg_replace('|\t|isU', '', $str);
$str = preg_replace('|\r\n|isU', '', $str);
$str = preg_replace('|\n|isU', '', $str);
$str = preg_replace('|(\?\>\<\?php)|isU', '', $str);
if(!$op) {
@file_put_contents($ComplieDir . "/" . md5($FileName) . '.php', $str);
}
}
if($op) {
return $str;
}
return $ComplieDir . "/" . md5($FileName) . '.php';
}
作者: zshtom 发布时间: 2008-07-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28