找回密码
 注册
搜索
热搜: java php web
查看: 1906|回复: 7

[PHP]没事玩写的30行的模板,功能很简单

[复制链接]
发表于 2009-1-28 19:07:06 | 显示全部楼层 |阅读模式
[PHP]没事玩写的30行的模板,功能很简单
复制内容到剪贴板
代码:
<?php
/**
* @author zshtom
* @copyright zshtom [email protected] 2007-2008
*/
function zTemplate($filename, $templatedir='', $compliedir='')
{
$comtime = @filemtime($compliedir.md5($filename).".php");   //编译时间
$temtime = @filemtime($templatedir.$filename);              //模板时间
if($temtime > $comtime)                                     //是否重新写入模板
{                                    
$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('|<!--{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);
$str = preg_replace('|{include_php (.*)}|isU', '<?php if(is_file("\\1.php")){ include_once("\\1.php");} ?>', $str);
               
$str = preg_replace('|{include_htm(.*) (.*)}|isU', '<?php if(is_file("\\2.htm\\1")){ $str = file_get_contents("\\2.htm\\1"); echo $str;} ?>', $str);
               
$str = preg_replace('|<!--{loop (.*) (.*) (.*)}-->|isU', '<?php if(is_array(\\1)){ foreach(\\1 as \\2 => \\3){  ?>', $str);
               
$str = preg_replace('|<!--{/loop}-->|isU', '<?php }} ?>', $str);
$str = preg_replace('|{template (.*)}|isU', '<?php include_once(zTemplate("\\1", "'.$templatedir.'", "'.$compliedir.'")); ?>', $str);@file_put_contents($compliedir.md5($filename).'.php', $str);}
return $compliedir.md5($filename).'.php';                 //返回模板结果
}
include_once(zTemplate('template.html','template/', 'templates/'));
?>



用法简单 和dz的用法一样 没有加入语言功能 呵呵 可以自己改 ,没有测bug

复制内容到剪贴板
代码:
<!--{if $val == 's'}-->
{$vals}
<!--{elseif $val == 'ss'}-->
{$vals}
<!--{/if}-->


{echo "des"}

{$zsh}
<!--{loop $array $key $val}-->
{$val}
{$zsh}
<!--{/loop}-->
sed
{template test.htm}
什么是优秀的程序员呢
发表于 2009-1-28 20:56:19 | 显示全部楼层
回复

使用道具 举报

发表于 2009-1-28 20:55:16 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

发表于 2009-1-28 19:42:19 | 显示全部楼层
刚学,不知道是什么
回复

使用道具 举报

发表于 2009-1-28 19:47:56 | 显示全部楼层
了解一下.
回复

使用道具 举报

发表于 2009-1-28 20:10:49 | 显示全部楼层
去看moophp下面有个,基本和这一样,discuz的模板也差不多,不知道都谁抄袭谁的,这世道
回复

使用道具 举报

发表于 2009-1-28 20:59:39 | 显示全部楼层
建议截图出来,这样更好。。。。。。。
回复

使用道具 举报

发表于 2009-5-27 09:43:37 | 显示全部楼层
考虑一下 学这个 嘿嘿...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-11-22 19:29

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表