南方Linux论坛   首页 | 行业 | 下载 | Blog | 桌面应用 | 数据库 | 电子商务 | 文摘 | 网络服务 | 开源 | 系统管理 | 内核代码 | 教程

返回   南方Linux论坛 > Linux 高级应用讨论区 > perl | php | python 脚本程序开发
注册账号 Blog 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记讨论区已读

发表新主题 回复
 
主题工具 显示模式
旧 2007-03-16, 02:04 PM   #1
顽主
级别:0 | 在线时长:0小时 | 升级还需:5小时
初级会员
 
注册日期: 2006-07-14
帖子: 9
精华: 0
现金: 27 金币
资产: 27 金币
声望: 10 顽主 正向着好的方向发展
默认 简单的解释型模板引擎

只是随便写的一个解释型的玩玩,嘻嘻
建立一个tpl.php文件内容如下
PHP 代码:
<?php
/*******************************************************
        作者:斌子(顽主)
        简单解释型模板引擎
*******************************************************/
class tpl{
    var
$vname        = array();
    var
$filecode    = array();
    var
$fdir        = './';
    var
$lift        = '{';
    var
$right        = '}';
    var
$forlift    = '{!';
    var
$forright    = '!}';
    var
$str        = NULL;
    var    
$cont        = NULL;
    var    
$codeend    = NULL;
    var
$code        = NULL;
    function
__construct($filename)
        {
             
$fp = fopen($this -> fdir.$filename,'r');
            
flock($fp,LOCK_EX);    
            
$this -> filecode = fread($fp,filesize($this -> fdir.$filename));
            
flock($fp,LOCK_UN);
            
fclose($fp);
        }
    function
assign($name,$value)
        {
                if(
is_array($value))
                    {
                        list(
$this -> filecode,$this -> cont,$this -> codeend) = explode($this -> forlift.$name.$this -> forright,$this -> filecode);
                        foreach(
$value as $key => $values)
                            {
                                    
$strcode = $this -> cont;
                                    if(
is_array($values))
                                        {

                                            foreach(
$values as $k => $v)
                                                {
                                                    
$strcode = str_replace($this -> lift.$k.$this -> right,$v,$strcode);
                                                }
                                        }
                                    
$this -> code .= $strcode;
                                    
                            }
                        
$this -> filecode .= $this -> code.$this -> codeend;
                        
                    }
                else
                    {
                        
$this -> str = $value;
                        
$this -> filecode = str_replace($this -> lift.$name.$this -> right,$this -> str,$this -> filecode);
                    }
        }
    function
play()
        {
            echo
$this -> filecode;
        }        
}            
?>
使用方法,建立一个a.php文件,内容如下
PHP 代码:
<?php
include_once('tpl.php');
$tl = new tpl('q.html');
$bin = array(array('de'=>'binzi','wang'=>'dddd'),
            array(
'de'=>'ggggg','wang'=>'hhhhh'),
            array(
'de'=>'binzi','wang'=>'dddd'));
$binzi = 'hahhahah';
$d = 'fffff';
$tl -> lift = '{';
$tl -> right = '}';
$tl -> assign('user',$bin);
$tl -> assign('huanghe',$binzi);
$tl -> assign('d',$d);
$tl -> play();
?>
建立一个q.html文件
内容如下
HTML 代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
{huanghe}<br>{d}
<table width="900" border="1">
{!user!}
  <tr>
    <td>{de}</td>
    <td>{wang}</td>
  </tr>
{!user!}
</table>
</body>
</html>
直接预览a.php文件就可以了。
顽主 当前离线  
回复时引用此帖
发表新主题 回复


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 
主题工具
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

论坛启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


所有时间均为北京时间。现在的时间是 04:49 AM


vBulletin 3.6.8 Powered by 南方Linux联盟
版权所有 ©2004 - 2009, bbs.linuxunion.net