smarty模板及其应用】的更多相关文章

好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: 对于字符串的截取,truncate函数只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,一个中文的长度大致相当于两个英文的长度.此外,truncate不能同时兼容GB2312.UTF-8等编码. 解决方法:自…
1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}><!--输出语句,输出结果为10--> 2.{appeng} {append}用于在模板执行期间建立或追加模板变量数组. 3.{assign} {assign}用来在模板运行时为模板变量赋值. 4.{block} {block}用来定义一个命名的模板继承源区域.意思就是一个模板可以继承另外一个模板…
smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, I don't exist in the compiled output *}><!--里面的内容是注释的,不会显示在页面中--> 2.变量:模板变量用美元符号$开始,可以包含数字.字母和下划线,这与php变量很像.可以引用数组的数字或非数字索引,当然也可以引用对象属性和方法. <{…
{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中的常量.从配置文件中读取变量等.1.在模板中访问页面请求变量我 们可以在PHP脚本中,通过超级全局数组$_GET.$_POST.$_REQUEST获取在客户端以不同方法提交给服务器的数据,也可以通 过$_COOKIE或$_SESSION在多个脚本之间跟踪变量,或是通过$_ENV和$_SERVER获取…
前言:继ThinkPHP3.2.3整合smarty模板(一)之后,继续来探讨一下tp框架整合smarty模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用到很多的自定义常量,比如定义一些常量作为引入静态文件,但在smarty模板中怎么直接使用这些常量呢? 1.定义常量:如:define('__IMAGE__', __STATIC__ . '/img'),在入口文件定义或者其他文件定义这个都无所谓,若在其他文件定义,则需要引入一下; 2.在模板中使用常…
一.assign和display方法的使用以及几个变量调节器 header("content-type:text/html;charset=utf-8");//加载Smarty引擎文件include "./smarty/Smarty.class.php"; //连接数据库,提取相关数据$title = "Smarty 模板引擎";$content = "Smarty 模板引擎Smarty 模板引擎Smarty 模板引擎"; /…
1.    使用smarty 1.1 项目引入 // 3, 连接数据库,提取相关数据 $title = "Smarty模板引擎"; $content = "Smarty模板引擎是目前业界使用的最多的模板引擎之一"; // 4, 实例化Smarty对象 $smarty = new Smarty; // 5, 更改smarty相关默认属性 // 6, 通过assign方法给模板文件分配变量 $smarty->assign('title', $title); $sm…
1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}><!--输出语句,输出结果为10--> 2.{appeng} {append}用于在模板执行期间建立或追加模板变量数组. 3.{assign} {assign}用来在模板运行时为模板变量赋值. 4.{block} {block}用来定义一个命名的模板继承源区域.意思就是一个模板可以继承另外一个模板…
前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tpl模板引擎.今天就写一个迷你版的Smarty引擎,虽然说我并没有深入分析过Smarty的源码,但是对模板引擎的原理,还是有深刻的理解的.如果有什么还需要改进的地方,记得提出来. 一.什么是Smarty模板引擎: Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一.它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP…
本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通过模板就可以直接调用,类似php里边通过include指令引入公共文件一样. {include file="[模目录/]板文件名称"} 使用include对公共文件进行包含的好处是使用较简单,好理解.不好的地方使用相对较繁琐. 许多框架程序把头部和脚部集中处理的技术成为"布局&q…
模板引擎技术:使得php代码和html代码分离的技术就称为"模板引擎技术" 自定义smarty模板技术实现 <?php //迷你smarty原理 class MiniSmarty{ public $var_arr = array(); public $template_dir = "./view/"; public $compile_dir = "./view_c/"; //把外部声明变量设置为当前类内部的成员属性信息var_arr fun…
Smarty模板:(前后端分离)原理:核心是一个类,先修改配置文件,在使用的时候引入配置文件即可,(init.inc.php)$smarty->assign("ceshi",$a);//注册变量到模板$smarty->display("test.html");//前台显示 一.登录:login.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"…
变量调节器 : 文件命名格式(modifier.名称.php)  前端调用方式<{变量|名称:参数:参数……}>可组合使用,用|隔开 <?php /* 命名格式 smarty_modifier_名称(一个必须参数$str,多个可选参数) $str 获取需要显示的变量内容 */ function smarty_modifier_color($str,$a,$b) { //处理内容 $str="<span style='color:$a; font-size:$b;'>…
smarty模板的配置文件 <?php define("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录 require ROOT.'smarty/Smarty.class.php'; //加载Smarty类文件 $smarty = new Smarty(); //实例化Smarty对象<br> $smarty->setTemplate…
smarty模板原理   模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <h…
在thinkphp框架中使用Thinkph的模板引擎,css,js等都没问题,配置为smarty模板引擎后没效果,如图 代码为,$Smarty的s是大写,此时页面不能引入常量,改为小写后正常了. <link href="{$Smarty.const.ADMIN_CSS}/User_Login.css" type="text/css" rel="stylesheet" />…
Smarty模板 是做什么用的?? 是将前端的显示和后台的逻辑进行分离,就相当于把前台显示的页面和后台要实现的某些功能的逻辑给分离出来了,分离在两个文件里,也就是说,前端只负责显示,后端只负责逻辑操作,就相当于cms一样.Smarty模板就是实现前后分离的,能够程序多人开发,比如说,美工就做前端程序员就做后端,实现分工开发,便于后期维护.比如这个页面看着不好看了,我在换一种风格,可以直接换掉模板就可以了.把Smarty模板放在你的程序文件加里就可以了,这个文件加的名字可以随便取. 这个文件加的名…
b = a++; 会先把a初始的值赋值给b,然后a自增1. c = ++a; 先把a自增1,再把增1以后的结果赋值给c.  只要记住在使用的时候  $a++  是先返回$a,再将$a本身的值改变.  例如$a =2; $b = $a++; 此时 $b 被赋值为2  然后原来的$a 变成了3. 而 ++$a; 是先增加1,再返回,还是原来的例子$a =2; $b = ++$a;  先把$a 增加一 所以最后$b 的值是3  此时  $a 的值 也是3   下面的代码输出什么?$i = 5; pri…
1.基本语法 所有的smarty模板标签都被加上了定界符.默认情况下是 { 和},但它们是可被改变的. 在smarty里,所有定界符以外的内容都是静态输出的,或者称之为不可改变.当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出 . 2.注释 模板注释被*号包围,例如 {* this is a comment *} smarty注释不会在模板文件的最后输出中出现.它只是模板内在的注释. 3.函数 每一个smarty标签输出一个变量或者调用某种函数.在定界符内函数和其属性将被处理…
源代码下载地址:深入浅出之Smarty模板引擎工作机制 接下来根据以下的Smarty模板引擎原理流程图开发一个自己的模板引擎用于学习,以便加深理解. Smarty模板引擎的原理,其实是这么一个过程: 把模板文件编译成php文件,然后每次都去读取下模板的修改时间,没有修改就不编译.然后include这个“编译”后的PHP文件. 所谓编译也就是模板用正则替换成含PHP代码的过程. 实际上并不会每次请求都编译,所以性能尚可.  模板文件和php程序文件经过模板引擎的编译后合成为一个文件,即编译后的文件…
深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解. 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content="Smarty模板引擎原理流程图";$auth="MarcoF…
Smarty模板引擎技术 内建函数 include_php内建函数 作用:载入一个php文件,将载入的文件的内容赋值给一个变量   注意:该内建函数只能在2.0中使用,如果使用的话,必须得实例化SmartyBC.class.php   示例代码: Index.php include 'Smarty/SmartyBC.class.php';//实例化Smarty类$Smarty = new SmartyBC();$Smarty->assign('name','小明');$Smarty->disp…
Smarty模板引擎技术 什么是模板引擎? 什么是Smarty模板引擎? 为何选择Smarty模板引擎? 如何使用Smarty模板引擎? 一.历史背景 场景一:回顾之前编写PHP项目的方式 //链接数据的操作 //构造sql语句 //执行sql语句$res = mysql_query($sql);?><table><?phpwhile($row = mysql_fetch_assoc($res)){?><tr> <td><?php echo $r…
1.下载smarty模板,官方即有 2.解压即可.你会得这样的目录 除了libs文件夹其余都可以删掉(不知道有啥用). 3.在当前目录下分别创建templates.templates_c.cache.config的文件夹,别的名字也可以,但是需要修改配置文件 4.在根目录下创建个文件夹叫啥都行,创建个php文件,将下列代码粘入其中. require_once("libs/smarty.class.php");$smarty=new smarty();$smarty->templa…
Ci框架整合smarty模板引擎 备注:下载smarty时,最好选择2.6版本,其他测试有坑,ci可以是2.2或其他 大体思路:将smarty封装成ci框架的一个类,然后重新配置一下smarty,这样ci框架就可以调用smarty模板引擎了 1.   将下载好的smarty包的lib文件上传到ci中的libraries 文件中,将取名称修改为smarty,在libraries文件新建cismarty.php文件,内容如下: #require_once  记得要导入该smarty类文件 #$thi…
http://blog.ipodmp.com/archives/php-write-a-mini-smarty-template-engine/ 迷你版Smarty模板引擎目录结构如下: ① 要开发一个模板引擎,最主要的有两个类,分别是模板引擎入口类和模板解析类. A.首先创建MiniSmarty目录,然后新建一个文件名为MiniSmarty.class.php 其代码如下: <?php //MiniSmarty模板引擎 class MiniSmarty { //模板文件 public $tem…
//php 控制器文件 <?php//引入模板引擎文件include("20130304.php");$smarty =newTinySmarty();$qq_numbers=array('a1'=>'12333','a2'=>'2222222','a3'=>'333333','a4'=>'3333333');$smarty->assign($qq_numbers);$smarty->assign('title','这是我的QQ号码');$sm…
Smarty模板函数里面有这样一个方法:fetch("template.htm"),他和display("template.htm");最大的不同就是fetch()是把内容输出给一个变量,而display()是把内容输出给浏览器,这样我们就可以用一个变量来接收fetch()的输出,然后把他写入到文件中去.…
在smarty模板引擎的section循环中 $data=[101,102,103,105,104]; section的两个属性total与loop {section foo $data start=1 step=2} {$smarty.section.foo.total}--输出2 {$smarty.section.foo.loop}--输出5 {/section} 意即:使用total输出的是循环执行的次数,使用loop输出的是所循环数据的count…
为了实现程序的业务逻辑和内容表现页面的分离从而提高开发速度,php 引入了模板引擎的概念,php 模板引擎里面最流行的可以说是smarty了,smarty因其功能强大而且速度快而被广大php web开发者所认可.本文将记录一下smarty模板引擎的工作执行原理,算是加深一下理解. 其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个php的混编文件,然后执行这个混编文件.基本上就是这么回事儿了.下面以smarty为例说下这…