zoukankan      html  css  js  c++  java
  • smarty基础

    smarty基础原理

    一、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=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <div>{$title}</div>
    <div>{$content}</div>
    </body>
    </html>

    二、PHP后台代码

    <?php
    //连接数据库,获得具体数据
    
    //1.引入迷你smart
    require ("minismart.class.php");
    //2实例化Smarty对象
    $smarty=new minismart();
    //将字符串信息设置为模板引擎类的属性信息
    $smarty->assign("title","qqq");
    $smarty->assign("content","aa");
    
    //3调用compile方法,同时传递ceshi.html模板文件参数
    //在该方法中把ceshi.html内部标记替换为php标记
    $smarty->compile("ceshi.html");

    三、模板引擎

    <?php
    //模板引擎类
    class minismart 
    {  
        //给该类声明属性,用于储存外部的变量信息
        public $tpl_var=array();
        //把外部变量设置成内部变量的一部分
        function assign($k,$v)
        {
         $this->tpl_var[$k]=$v;
        }
    
         //"编译模板文件({}标记替换为php标记)"
        function compile ($tpl) //compile编译
        {  //获得模板文件内部具体内容
           $cont= file_get_contents($tpl);//file_get_contents()获取内容
         
        
        //替换 { ---> <?php echo $this->tpl_var["
        $cont=str_replace("{$","<?php echo $this->tpl_var["",$cont);
        
        //替换 } --->"]; ? >
        $cont=str_replace("}",""]; ?>",$cont);
          
        //把生成好的编译内容(php + html 混编内容)放入一个文件里面
        file_put_contents("./shili.html.php",$cont);
          //引入混编文件
        include ("./shili.html.php");
        }
        
    }

    四、混编代码页面

    <!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=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <div><?php echo $this->tpl_var["title"]; ?></div>
    <div><?php echo $this->tpl_var["content"]; ?></div>
    </body>
    </html>
  • 相关阅读:
    MySQL索引原理
    MyBatis执行流程的各阶段介绍
    实现单栈实现支持getMin的栈
    缓存LRU算法——使用HashMap和双向链表实现
    Hystrix资源隔离
    各种负载均衡策略-图解
    接口调用超时的实现原理
    Spring Bean生命周期的各阶段介绍
    TAR命令详解 复习
    INT MOD
  • 原文地址:https://www.cnblogs.com/m-m-g-y0416/p/5700081.html
Copyright © 2011-2022 走看看