自定义一个模板引擎

1.新建一个简单的模板demo.html

         <html>
                    <head>
                         <title>{$title}</title>
                    </head>
                    <body>
                           <h2>{ $title }</h2>
                          <div>
                             { $content }
                         </div>
                    </body>
        </html>

2.自定义一个基础的模板引擎,命名叫smarty.class,php

       <?php
             //自定义一个模板引擎类,命名叫smarty
            class Smarty{
            private $vars=array();
        
             //给模板引擎中的变量赋值的方法
                 function assign($varname,$varvalue){
            
                 $this->vars[$varname]=$varvalue;    
    
    }
        //使用模板引擎中的定义的变量,替换指定的模板内容,方法中的参数为模板名称        
        function display($tplname){        
        
            $html=file_get_contents($tplname);
            
            //变量的正则表达式
            $zz='/\{\s*\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*\}/';
            
            $rep="<?php echo \$this->vars['\\1'];?>";
            
            $newhtml=preg_replace($zz,$rep,$html);
            
            file_put_contents($tplname.'.php',$newhtml);
            
            include $tplname.'.php';
                            
    }
}
?>

3.主程序调用模板引擎,并使用模板引擎中的方法调用模板输出

     <?php
    include "smarty.class.php";

    $smarty=new Smarty;

    //假定这是从数据库中获取到的数据内容,存在以下2个变量中;
    $tit='我的生字表';

    $cont="我是一只放生千年的狐,千年修行千年孤独!";

    //将这两个变量内容分配给模板中的变量(实际是先分配给模板引擎中定义的变量再由模板引擎执行替换模板中的变量内容)
    $smarty->assign('title',$tit);

    $smarty->assign('content',$cont);
    
    //调用指定的模板
    $smarty->display('demo.html');

?>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值