zoukankan      html  css  js  c++  java
  • 网页设计与后台程序解决方案模板引擎之Smarty

    1.模板引擎&核心技术

      1) 初始web应用的开发模板往往都是混合式编程,PHP脚本的编写者必须既是网页设计者,又是PHP开发者,但实际情况,两种技术都精通的开发者并不多见。模板引擎的出现解决了这个问题,可以将网站的页面设计和PHP应用程序几乎完全分离,使得网页设计师更注重于网页,PHP工程师更注重于逻辑开发。

      2)核心技术:只要将美工页面(不包含任何的PHP代码)指定为模板文件,并将这个模板文件中有活动的内容,定义成使用特殊"定界符"包含的"变量",然后放在模板文件中相应的位置。当用户浏览时,由PHP脚本程序打开该模板文件,并将模板文件中定义的变量进行替换。这样,模板中的特殊变量被替换为不同的动态内容时,就会输出需要的页面。 

    2.安装smarty

      1) 到Smarty官方网站http://www.smarty.net/download.php下载最新的稳定版本.

      2) 解压在之后,将libs文件夹复制到的程序主文件夹下。(我的Apache主目录为D:\webRoot)

      3) 在执行的PHP脚本中,通过require()语句将libs目录中的Smarty.class.php类文件加载进来,Smarty类库就可以使用了。

      4)在主目录中分别建立templates,templates_c,cache,configs文件夹,具体含义在下一步。

    3. Smarty类库的初始化

      $template_dir:模板文件的指定目录

      $compile_dir: 编译之后的模板文件目录

      $config_dir:存放模板特殊文件目录

      $left_delimiter:模板中左结束符标志 默认情况下为"{"

      $right_delimiter: 模板中右结束符的标志 默认为"}"

      $caching:告诉Smarty是否缓存模板的输出。

      $cache_dir:缓存模板文件的指定目录

    4.创建模板 在网站主目录templates下建立模板templates/test.tpl

      

    1 <html>  
    2     <head>  
    3         <meta http-equiv="Content-type" content="text/html; charset=gb2312">  
    4         <title> { $title } </title>  
    5     </head>  
    6     <body>  
    7         { $content }  
    8     </body>  
    9 </html> 

    5. 创建文件index.php

    <?php
       include "./libs/Smarty.class.php";         //包含Smarty类库所在的文件  
       define('SITE_ROOT', '/usr/demo');          //声明一个常量指定非Web服务器的根目录  
       $smarty = new Smarty();                    //创建一个Smarty类的对象$tpl  
       $smarty->template_dir = SITE_ROOT . "/templates/";    //设置所有模板文件存放的目录  
        $smarty->compile_dir = SITE_ROOT . "/templates_c/";   //设置所有编译过的模板文件存放的目录  
        $smarty->config_dir = SITE_ROOT . "/configs/";        //设置模板中特殊配置文件存放的目录  
        $smarty->cache_dir = SITE_ROOT . "/cache/";           //设置存放Smarty缓存文件的目录  
        $smarty->caching=1;                               //设置开启Smarty缓存模板功能  
        $smarty->cache_lifetime=60*60*24;                  //设置模板缓存有效时间段的长度为1天  
        $smarty->left_delimiter = '<{';                    //设置模板语言中的左结束符  
        $smarty->right_delimiter = '}>';                    //设置模板语言中的右结束符  
    
       $smarty->assign("title", "测试用的网页标题");       //第四步:用assign()方法将变量置入模板里  
        $smarty->assign("content", "测试用的网页内容");     //也属于第四步,分配其他变量置入模板里  可以向模板中置入任何类型的变量  
        $smarty->display("test.tpl");                    //利用Smarty的display()方法将网页输出
    ?> 

    地址栏输入localhost/index.php 得到下图所示:

      

  • 相关阅读:
    LeetCode 83. Remove Duplicates from Sorted List (从有序链表中去除重复项)
    LeetCode 21. Merge Two Sorted Lists (合并两个有序链表)
    LeetCode 720. Longest Word in Dictionary (字典里最长的单词)
    LeetCode 690. Employee Importance (职员的重要值)
    LeetCode 645. Set Mismatch (集合不匹配)
    LeetCode 500. Keyboard Row (键盘行)
    LeetCode 463. Island Perimeter (岛的周长)
    115.Distinct Subsequences
    55.Jump Game
    124.Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/Jqxing/p/3017050.html
Copyright © 2011-2022 走看看