smarty的原理:

<?php
class Smarty
{
$ldelimiter = "{";//左分隔符
$rdelimiter = "}";//友分隔符 $attr = array();//用来存贮变量的数组 //向模板里面注册变量
function assign($key,$value)
{
$this->attr[$key] = $value;
} //显示模板的方法
function display($url)
{
//1.获取静态模板的内容
$str = file_get_contents($url);
//2.根据正则匹配str里面出现的所有{}里面的内容
//{$a} -> <?php echo $attr[$a] ?> //3.将替换好的页面保存临时文件
touch(".test.php");
file_put_contents(); //4.将临时文件拿到当前页面显示
include(".test.php");
}
}

访问的是PHP文件,其中路径就按照访问的PHP文件来定。但是显示的是html。

test.php

test.php
<?php
include("../init.inc.php");
//注册变量
$smarty->assign("name","张三");
$smarty->assign("arr",array(1,2,3,4,5));
$smarty->assign("test","my name is zhangsan");
$smarty->assign("title",啊啊啊啊啊啊);
//显示模板
$smarty->display("test.html");

test.html

<html>
<head></head>
<body>
<{$name}>
<{$arr.one}>
<{config_load file='test.conf'} section='one'>
<div style="width:20px;height:20px;background-color:<{#color#}>"></div>
<{$smarty.now|date_format:%Y-%m-%d %H:%M:%S}>
<{$test|truncate:5}>//截取字符串
          <{date name ="riqi" value="2017-2-3" time=true}>
     <{color name="color"}>
     <{textarea name="txt" toolbar="full" color="red"}>
     <{/textarea}>//块函数要有首和尾
     
     <{cishu num=3}>
     <{font da=50}>
     电话卡会打架
     <{/font}>
     
</body>
</html> $smarty.const.XXX 取常量
$smarty.config.color 和 #color#一样

test.conf

[one]
color=red
[two]
color=green

自定义变量调节器modifier.keyword.php

<?php
function smarty_modifier_keyword($str,$key)
{
return str_replace($key,"<mark>{$key}</mark>",$str);
}

自定义函数function.cishu.php

//num参数代表输出次数
function smarty_function_cishu($args,$smarty)
{
$num = $args["num"]; $str = ""; for($i=0;$i<$num;$i++)
{
$str = $str."<div style='width:100px;height:100px;background-color:green'></div>";
}
return $str;
}

自定义块函数block.font.php

<?php
function smarty_block_font($args,$content,$smarty,$a)
{
if(!$a)//走头的时候没有内容,走尾的时候把内容改变
{
$da = $args["da"]; return "<span style='font-size:{$da}px'>{$content}</span>";
}
}

显示结果

 

SMARTY的知识的更多相关文章

  1. php常见面试(Smarty及相关知识)

    1.Smarty简介: 是一种php模板引擎,它分开了后台程序和前台页面内容,使程序员和美工分工合作.还有其它模版引擎实现同样的目的. 2.Smarty使用: 建立php文件: 包含smarty类文件 ...

  2. smarty模板基础知识

    1.定义 Smarty是一个使用php写出来的模板引擎,它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与html代码混杂在一起PHP代码逻辑分离. 简单的讲,目的就是要使PH ...

  3. smarty学习——高级知识

    1.Objects 对象 smarty允许通过模板访问PHP对象.有两种方式来访问它们.一种是注册对象到模板,然后通过类似于用户自定义函数的形式来访问它. 另一种方法给模板分配对象,然后通过访问其它赋 ...

  4. smarty学习——编程知识

    smarty 提供了丰富的api 接口可以方便我们进行操作: 1.clear_all_assign清除所有赋值 2.clear_all_cache清除所有缓存 3.clear_assign清除赋值 4 ...

  5. smarty模板引擎(一)基础知识

    一.基本概念 1.什么是mvc?     mvc是一种开发模式,核心思想是:数据的输入.数据的处理.数据显示的强制分离. 2.什么是smarty?     smarty是一个php的模板引擎.更明白的 ...

  6. smarty 快速上手

    smarty半小时快速上手入门教程 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-27我要评论 这篇文章主要介绍了smarty半小时快速上手入门教程,以实例的形 ...

  7. smarty 学习记录

    smarty模版是比较大众化的一个模版,在php开发过程当中被很多开发者视为最友好的模版之一,学习smarty课程对于很多培训机构来说也是列入了培训课程之一,那么很多方面就需要我们学习了一. 安装首先 ...

  8. smarty半小时快速上手入门教程

    http://www.jb51.net/article/56754.htm http://www.yiibai.com/smarty/smarty_functions.html http://www. ...

  9. (转)PHP模板smarty简单入门教程

    转之--http://blog.163.com/zf_2011@126/blog/static/166861361201062595057962/ 如何在smarty中开始我们程序设计.PHP代码:- ...

随机推荐

  1. ISO/IEC 9899:2011 条款6.7.1——存储类说明符

    6.7.1 存储类说明符 语法 1.storage-class-specifier: typedef extern static _Thread_local auto register 约束 2.在一 ...

  2. 网站无法连接上,但能上QQ的解决办法

    一句话:修改DNS的IP地址 参考win10修改IP地址:https://jingyan.baidu.com/article/19192ad8eef0c9e53e570717.html 在网络上搜索合 ...

  3. 设计input搜索框提示文字点击消失的效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 线程或进程绑定到特定的cpu

    常用的宏定义有: 1) 对cpu集进行初始化, 将其设置为空集 void CPU_ZERO(cpu_set_t *set); 2) 将指定的cpu加入到cpu集中 void CPU_SET(int c ...

  5. 123457123456#0#-----com.cym.shuXue02--前拼后广--开心学数学

    com.cym.shuXue02--前拼后广--开心学数学

  6. Python - Django - 页面上展示固定的页码数

    如果页数太多的话,全部显示在页面上就会显得很冗杂 可以在页面中显示规定的页码数 例如: book_list.html: <!DOCTYPE html> <html lang=&quo ...

  7. HtmlHelper介绍

    目录 什么是HtmlHelper? 为什么要使用HtmlHelper? 清爽简单 修改路由不用改连接 很早就知道这个了,但是我一直不用.今天看了看书,准备以后都使用这个 什么是HtmlHelper? ...

  8. redis cluster环境搭建

    环境搭建 http://blog.51cto.com/zhoushouby/1560400 http://hot66hot.iteye.com/blog/2050676 ruby环境安装---ruby ...

  9. Linq中demo,用力看看吧

    本文导读:LINQ to SQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能.Linq中where查询与SQL命令中的Where作用相似,都是起到范围限定 ...

  10. 【ARTS】01_47_左耳听风-201900930~201901006

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...