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>
原文地址:https://www.cnblogs.com/m-m-g-y0416/p/5700081.html