SMARTY的知识
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的知识的更多相关文章
- php常见面试(Smarty及相关知识)
1.Smarty简介: 是一种php模板引擎,它分开了后台程序和前台页面内容,使程序员和美工分工合作.还有其它模版引擎实现同样的目的. 2.Smarty使用: 建立php文件: 包含smarty类文件 ...
- smarty模板基础知识
1.定义 Smarty是一个使用php写出来的模板引擎,它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与html代码混杂在一起PHP代码逻辑分离. 简单的讲,目的就是要使PH ...
- smarty学习——高级知识
1.Objects 对象 smarty允许通过模板访问PHP对象.有两种方式来访问它们.一种是注册对象到模板,然后通过类似于用户自定义函数的形式来访问它. 另一种方法给模板分配对象,然后通过访问其它赋 ...
- smarty学习——编程知识
smarty 提供了丰富的api 接口可以方便我们进行操作: 1.clear_all_assign清除所有赋值 2.clear_all_cache清除所有缓存 3.clear_assign清除赋值 4 ...
- smarty模板引擎(一)基础知识
一.基本概念 1.什么是mvc? mvc是一种开发模式,核心思想是:数据的输入.数据的处理.数据显示的强制分离. 2.什么是smarty? smarty是一个php的模板引擎.更明白的 ...
- smarty 快速上手
smarty半小时快速上手入门教程 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-27我要评论 这篇文章主要介绍了smarty半小时快速上手入门教程,以实例的形 ...
- smarty 学习记录
smarty模版是比较大众化的一个模版,在php开发过程当中被很多开发者视为最友好的模版之一,学习smarty课程对于很多培训机构来说也是列入了培训课程之一,那么很多方面就需要我们学习了一. 安装首先 ...
- smarty半小时快速上手入门教程
http://www.jb51.net/article/56754.htm http://www.yiibai.com/smarty/smarty_functions.html http://www. ...
- (转)PHP模板smarty简单入门教程
转之--http://blog.163.com/zf_2011@126/blog/static/166861361201062595057962/ 如何在smarty中开始我们程序设计.PHP代码:- ...
随机推荐
- MyBatis原理总结(前期准备)
1.不同框架解决不用问题,框架封装了很多细节,开发者可以使用简单的方式实现功能. 2.三层架构: 1.表现层 2.业务层 3.持久层 都有相应的处理框架. 3.持久层的技术解决方案: JDBC技 ...
- Spring cloud微服务安全实战-6-1本章概述
这一章来讲一下,微服务之间的通讯安全. 当前这个架构还存在的问题 在网关上做限流还是有一些问题的.例如我的订单服务限流是100,库存服务限流也是100.但是我的订单服务会调用我的库存服务.那么在网关这 ...
- Qt编写自定义控件61-通用移动
一.前言 通用移动类,目标就是为了实现放入任意的控件以后,支持鼠标拖动,在容器中或者父类中拖动,这个应用场景非常多,比如在地图上放置的设备,需要用户自行按下拖动到指定的合适的位置,然后保存设备的位置坐 ...
- 【计算机视觉】图像配准(Image Registration)
(Source:https://blog.sicara.com/image-registration-sift-deep-learning-3c794d794b7a) 图像配准方法概述 图像配准广泛 ...
- 透过SourceTree再谈Git
初出茅庐之基础篇 1. Download SourceTree from: https://www.sourcetreeapp.com/ 2.Complete the installation. 3. ...
- LODOP打印table表格宽度固定-超宽隐藏
之前有博文介绍关于超出div隐藏内容的:LODOP打印超过后隐藏内容样式里面提到了overflow:hidden;控制超出后隐藏,但是前面那篇用的是div,如果是在table中,由于table默认的t ...
- Pyhon时间参数的应用
Python获取 本周,上周,本月,上月,本季,上季,今年, 去年 # -*- coding: utf-8 -*-# @time: 2019-05-13 17:30 import datetime f ...
- ffmpeg.编译(20191129)
1.一步步实现windows版ijkplayer系列文章之一——Windows10平台编译ffmpeg 4.0.2,生成ffplay - HarlanC - 博客园.html(https://www. ...
- 【剑指offer】面试题 25. 合并两个排序的链表
面试题 25. 合并两个排序的链表 NowCoder 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. Java 实现 ListNode Clas ...
- 《Mysql - 幻读》
一:准备 - 为了深入了解幻读,准备数据. CREATE TABLE `t` ( `id` ) NOT NULL, `c` ) DEFAULT NULL, `d` ) DEFAULT NULL, PR ...