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

    smarty模板的作用可以让前端和后端分离(也就是前端的显示页面和后端的php代码)。

    smarty模板的核心是一个类,下载好的模板中有这么几个重要的文件夹

    (1)libs核心文件夹
    (2)int.inc.php这是入口文件
    (3)plugins:自己写的插件文件夹
    (4)templates_c:存放编译好的文件
    (5)int.inc.php这是入口文件
    (6)定义好常量:不能修改

    一、如何实现前后分离的原理:
    核心是一个类
    1.左分隔符{
    2.右分隔符}
    3.数组(默认空数组):存储变量

    4.提供一个方法:向模板中注册变量的方法(assign(名字,值))
    方法存在数组中的(找到数组存入变量)

    5.还有一个方法:显示模板的(display(模板的名称或是路径))
    两个功能:拿模板,解析变量

    通过名称就可以找到模板的路径
    $url = "模板路径".$name ;

    读取模板文件,返回字符串
    $str = file_get_contents($url);

    将字符串的某些内容作了替换
    1.将模板中的"名字"替换成 一段php代码 echo $arr=[名字]
    2.将替换好的字符串保存到临时文件或者是编译好的文件
    file_put_contents(存放的位置,上面替换好的字符串);
    3.将编译好的文件拿到当前页面显示
    include(临时文件的目录);

    二、怎么用模板?

    模板页面
    1.引入模板的入口文件
    include("入口文件路径位置");

    2.直接用对象
    提供一个方法:向模板中注册变量的方法(assign(名字,值)
    $smarty->assign("ceshi","你好");
    提供一个方法:显示模板的(display(模板的名称或是路径))
    $smarty->display("ceshi.html");


    正常页面
    {assign(名字)}

    注意:
    1.访问的是php的页面,显示的是html页面
    2.html用到了外部的样式表,位置是相对于访问的php页面来找外部样式

    三、入口文件的内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
     
    define("ROOT",str_replace("\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录
     
    //echo str_replace("\","/",dirname(__FILE__)).'/'; //获取当前文件所在的位置
     
    require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件
    $smarty = new Smarty(); //实例化Smarty对象
     
     
    define("CSS_PATH","/project/css/");
    define("JS_PATH","/project/js/");
     
    //$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; //设置缓存模板有效时间一天
    <br>//下面的内容是修改左和右的分隔符形式
    $smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
    $smarty->right_delimiter = '}>'; //设置模板语言中的右结束符
     
    ?>
  • 相关阅读:
    括号配对问题 (栈的应用)
    poj 1363 火车进站 (栈的应用)
    算法训练题
    进制-Adding Two Negabinary Numbers
    翻转-Flip Columns For Maximum Number of Equal Rows
    图论-完全二叉树判定-Check Completeness of a Binary Tree
    动态规划-Maximum Subarray-Maximum Sum Circular Subarray
    贪心-最大相容区间-Maximum Number of Events That Can Be Attended
    动态规划-LCS-Uncrossed Lines
    数学-绝对值-Reverse Subarray To Maximize Array Value
  • 原文地址:https://www.cnblogs.com/du892294464/p/7096225.html
Copyright © 2011-2022 走看看