码迷,mamicode.com
首页 > 其他好文 > 详细

smarty模板基础

时间:2016-07-22 12:51:19      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

将前台后台隔离,前台控制显示,后台控制内容,与cms类似
原理: 用户访问text.php后台,后台调用类smarty.class.php显示静态模板;涉及到一个临时文件一个缓存文件;
核心smarty.class.php的原理解释::
<?php
class Smarty
{
    public $left="<{";  //左分隔符
    public $right="}>"; //右分隔符
    public $attr=array(); //存储变量
    
    //注册变量
    function assign($name,$value)
    {
        $this->attr[$name]->$value;
        }
    //显示模板
    function display($filename){
        //获取静态文件内容
        $str=file_get_contents($filename);
        
            /*<html>        
            <head></head>
            <body>
            <div><{aa}></div>
            </body>
            </html>
            */
            //得到结果
            
        //正则表达式匹配内容,aa,查找和替换
            /*<html>        
            <head></head>
            <body>
            <div><?php echo $attr["aa"] ?></div>
            </body>
            </html>
            */
            //得到结果
        //将替换后的内容存到临时文件
        $lujing="../text/docunment.php";
        file_put_contents($lujing,$str);
        //读取临时文件
        include ($lujing);
        }
    }

配置文件int.inc.php(核心):

<?php
define("ROOT",str_replace("\\","/",dirname(__FILE__)).‘/‘); //常量ROOT中指定项目根目录

//echo str_replace("\\","/",dirname(__FILE__)).‘/‘; //获取当前文件所在的位置

require ROOT.‘libs/Smarty.class.php‘; //加载Smarty类文件
$smarty = new Smarty(); //实例化Smarty对象


//$smarty -> auto_literal = false; //就可以让定界符号使用空格
$smarty->setTemplateDir(ROOT.‘templates/‘); //设置所有模板文件存放位置
//$smarty->addTemplateDir(ROOT.‘templates2/‘); //添加一个模板文件夹
$smarty->setCompileDir(ROOT.‘templates_c/‘); //设置编译过的模板存放的目录
$smarty->addPluginsDir(ROOT.‘plugins/‘); //设置为模板扩充插件存放目录
$smarty->setCacheDir(ROOT.‘cache/‘); //设置缓存文件存放目录
$smarty->setConfigDir(ROOT.‘configs/‘); //设置模板配置文件存放目录

$smarty->caching = false; //设置Smarty缓存开关功能
$smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天

$smarty->left_delimiter = ‘<{‘; //设置模板语言中的左结束符
$smarty->right_delimiter = ‘}>‘; //设置模板语言中的右结束符
?>

 main.php:

<?php
include("../init.inc.php");
$smarty->assign("aa","hello");
$smarty->display("test.html");

 

smarty模板基础

标签:

原文地址:http://www.cnblogs.com/jinshui/p/5694661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!