smarty原理

<?php

class smarty 
{
    public $leftlimit = "<{";  //定义左分隔符
    public $rightlimit = "}>";  // 定义右分隔符
    public $attr;    //存放smarty里面的变量信息的数组
    
    //注册变量(将变量存放到arrt数组里面去)
    function assign($k,$v)
    {
        $this->attr[$k]=$v;//往数组里面存放一个值v,索引是k
        
    }
    //显示模板
    function display($name)  //$name就是模板的名称
    {
        //造模板的路径
        $filename = $mubanlujing.$name;//相当于index.html的文件
        //获取模板的内容
        $str = file_get_contents($filename);//读取出来是个字符串,存放在str里
        
        /*<html>
        <head></head>
        <body>
        <div>{$aa}</div>
        </body>
        </html>*/
        
        //用正则去匹配字符串中出现的{}里的内容
        //将内容读取(读取到的是数组里面的k),拿key去数组attr里面取value值
        /*<html>
        <head></head>
        <body>
        <div><?php echo $attr[key] ?></div>//经过上面的步骤后读取到的是这种形式
        </body>
        </html>*/
        
        
        //将str里面的内容存储在缓存文件里面
        file_put_contents($filename,$str);//将str存储在filename里
        //将存储的文件加载到当前页面
        include(filename);
        
        
    }
    
}

原文地址:https://www.cnblogs.com/erinzhismile/p/5558595.html