zoukankan      html  css  js  c++  java
  • smarty模板基础知识

    1、定义

             Smarty是一个使用php写出来的模板引擎,它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与html代码混杂在一起PHP代码逻辑分离。

    简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

    2、

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
        class Smarty
        {
            public $left="{"//左分割符
            public $right="}";
             
             
            //所有后台数据要存在这个数组里;
            public $arr =array();
             
             
            //注册变量(将这个变量写到数组里存一下),将得到的数据传到上面的数组中
            public function assign($name,$value){
                $arr[$name] = $value;
            }
             
             
            //显示模板(核心)(看下图)
            public function display($url){
                 
                //找到模板文件
                $str = file_get_contents($url);
                 
                //根据正则匹配带有标记({})的内容,做替换
             
                //将编译好的文件缓存下来          
                file_get_contents("",$str);
             
                //将文件拿到当前页面显示
                include();
     
            }
         
        }
         
         
     
     
    ?>

      

    3、例子:

    (1)在12.php页面:(字符串类型;数组;对象)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
        //引入smarty类
    require "../init.inc.php";
     
    //数组类型
    $arr =array("one"=>"1111","two"=>"2222");
     
    //对象
    class Ren{
        public $name="张三";
    }
    $r= new Ren();
     
    //注册变量
    $smarty->assign("ceshi","hello");  //字符串
    $smarty->assign("shuzu",$arr);  //数组
    $smarty->assign("duixiang",$r);  //对象
     
    //显示
    $smarty->display("test.html");
    ?>

      (2)test.html页面

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!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>
    <{$ceshi}>
    <{$shuzu["one"]}>
    <{$duixiang->name}>
    </body>
    </html>

      (3)运行12.php,结果如下:

  • 相关阅读:
    从excel表中生成批量SQL,将数据录入到数据库中
    执行git命令时出现fatal: 'origin' does not appear to be a git repository错误
    小程序获取openid 出现null,{"errcode":40163,"errmsg":"code been used, hints: [ req_id: WNUzlA0105th41 ]"}
    由客户端内部通讯引发的插件化开发的随想和实践
    Prism6下的MEF:基于微软企业库的Cache
    从微信SDK看ProtoBuffer文件的生成
    Prism6下的MEF:添加Logger
    Prism6下的MEF:第一个Hello World
    讲讲Windows10(UWP)下的Binding
    Windows10(UWP)下的MEF
  • 原文地址:https://www.cnblogs.com/Liangbingbing/p/7110237.html
Copyright © 2011-2022 走看看