zoukankan      html  css  js  c++  java
  • smarty模板基础(部分转)

     首先需要建一个smarty的类文件.php

    <?php
    class smarty
    {
        public $left = "{";//左分隔符        
        public $right = "}";//右分隔符
        
        public $arr = array(); //存储变量
        
        //向模板里面注册变量
        function assign($key,$value)
        {
            $this->arr[$key] = $value;
        }
        
        //显示模板
        function display($name)
        {
            //找到模板路径
            $url = "/".$name;
            //模板读取
            $str = file_get_contents($url);
            
            //将str里面的某些内容(变量)做了替换
            //将模板里面的<{$aa}> 替换成 <?php echo $arr[aa]
            
            //将替换好的字符串保存到编译好的文件
             file_put_contents($filename,$str);
             
             //将编译好的文件拿到当前页面显示
             include($filename);
            
        }
    }

    其次新建一个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对象
    
    
    define("CSS_PATH","/project/css/");//定义常量目录 css目录
    define("JS_PATH","/project/js/");//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; //设置缓存模板有效时间一天
    
    $smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
    $smarty->right_delimiter = '}>'; //设置模板语言中的右结束符
    
    
    
    
    
    ?>

    php文件如下

    <?php
    include("../init.inc.php");
    
    $smarty->assign("ceshi","你好"); //注册变量的方法
    
    $smarty->display("test.html");

    继续在project文件夹下写相应的html文件

    <!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}>
    </body>
    </html>

    注意:

    1.smarty的注释模板注释被*星号包围,而两边的星号又被定界符包围:

    {* this is a comment *}

    2.

    加载配置文件后,配置文件中的变量需要用两个井号"#"包围或者是smarty的保留变量$smarty.config.来调用

    {$smarty.now}取得当前时间戳,可以直接通过变量调节器date_format[格式化日期]输出显示

    date_format转换标记:

    • %a - 当前区域星期几的简写
    • %A - 当前区域星期几的全称
    • %b - 当前区域月份的简写
    • %B - 当前区域月份的全称
    • %c - 当前区域首选的日期时间表达
    • %C - 世纪值(年份除以 100 后取整,范围从 00 到 99)
    • %d - 月份中的第几天,十进制数字(范围从 01 到 31)
    • %D - 和 %m/%d/%y 一样
    • %e - 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ' 1' 到 '31')
    • %g - 和 %G 一样,但是没有世纪
    • %G - 4 位数的年份,符合 ISO 星期数(参见 %V)。和 %V 的格式和值一样,只除了如果 ISO 星期数属于前一年或者后一年,则使用那一年。
    • %h - 和 %b 一样
    • %H - 24 小时制的十进制小时数(范围从 00 到 23)
    • %I - 12 小时制的十进制小时数(范围从 00 到 12)
    • %j - 年份中的第几天,十进制数(范围从 001 到 366)
    • %m - 十进制月份(范围从 01 到 12)
    • %M - 十进制分钟数
    • %n - 换行符
    • %p - 根据给定的时间值为 `am' 或 `pm',或者当前区域设置中的相应字符串
    • %r - 用 a.m. 和 p.m. 符号的时间
    • %R - 24 小时符号的时间
    • %S - 十进制秒数
    • %t - 制表符
    • %T - 当前时间,和 %H:%M:%S 一样
    • %u - 星期几的十进制数表达 [1,7],1 表示星期一
    • %U - 本年的第几周,从第一周的第一个星期天作为第一天开始
    • %V - 本年第几周的 ISO 8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。(用 %G 或者 %g 作为指定时间戳相应周数的年份组成。)
    • %W - 本年的第几周数,从第一周的第一个星期一作为第一天开始
    • %w - 星期中的第几天,星期天为 0
    • %x - 当前区域首选的时间表示法,不包括时间
    • %X - 当前区域首选的时间表示法,不包括日期
    • %y - 没有世纪数的十进制年份(范围从 00 到 99)
    • %Y - 包括世纪数的十进制年份
    • %Z 或 %z - 时区名或缩写
    • %% - 文字上的 `%' 字符 
  • 相关阅读:
    技术沙龙.:主题为《代码解析Castle(IOC)应用实例 -开源CMS 系统Cuyahoga》
    Active Record和Domain Object + Dao
    SNMP++.NET 项目
    微软发布Windows Vista Tips and Tricks网站
    2007 Office System Video
    使用搜索引擎搜索结果
    我购买了一台acer笔记本
    有价值的杂志《MSDN杂志》中文版
    Spring2.0中文参考手册(中文版) [转自CSDN论坛]
    开源项目Generics.Net介绍
  • 原文地址:https://www.cnblogs.com/xiaoming-6/p/6515914.html
Copyright © 2011-2022 走看看