热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Smarty配置与基本操作

左右边界符,默认为{},但实际应用当中容易与JavaScript相冲突
include_once("Smarty/Smarty.class.php");//包含smarty类文件
   
$smarty = new Smarty(); //建立smarty实例对象$smarty
   
$smarty->config_dir="Smarty/Config_File.class.php";  // 目录变量
   
$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
   
$smarty->template_dir = "./templates";//设置模板目录
   
$smarty->compile_dir ="./templates_c"; //设置编译目录
   
$smarty->cache_dir ="./smarty_cache"; //缓存文件夹
   
//----------------------------------------------------
   
//左右边界符,默认为{},但实际应用当中容易与Javascript相冲突
   
//----------------------------------------------------
   
$smarty->left_delimiter = "{";
   
$smarty->right_delimiter ="}";
PHP模板引擎Smarty的变量操作符

1.摸版接收数组显示

{section name=i loop=$content}

{$content[i].name}

{sectionelse}

no

{/section}

2.如何使用Smarty变量操作符

语法中使用"|"应用变量操作符,多个参数用":" 分隔开来

capitalize [首字母大写]         e.g:{$content|capitalize}

count_characters [计算字符数]   e.g:{$content|count_characters}

cat [连接字符串]                e.g:{$content|cat:$title}   :号连接

count_paragraphs [计算段落数]   e.g:{$content|count_paragraphs }

count_sentences [计算句数]      e.g:{$content|count_sentences}

count_words [计算词数]          e.g:{$content|count_words}

date_format [时间格式]          e.g:{$content|date_format:"%Y-%m-%d"}

default [默认]                  e.g:{$content|default:"no content}

escape [转码]                   e.g:{$content|escape}

indent[缩进]  e.g:{$content|indent:10:' '} 缩进10个字符,以空格代替

lower[小写 ]                    e.g:{$content|lower}

nl2br[换行符替换成
]

regex_replace[正则替换]

replace[替换]                e.g:{$content2|replace:"as":"***"}

spacify[插空]                e.g:{$content2|spacify}

string_format[字符串格式化]   e.g:{$content2|string_format:"%.2f"}

strip[去除(多余空格)]         e.g:{$content2|strip}

strip_tags[去除html标签]      e.g:{$content2|strip_tags}

truncate[截取]                e.g:{$content2|truncate:"30":"…"}

upper[大写]

wordwrap[行宽约束]

PHP模板引擎Smarty内置函数

1.foreach 数组的处理

2、include 多功能使用

3、IF条件语句的使用

4、literal strip 文本的处理技巧

1.foreach数组的处理

与我们在PHP中的foreach用法类似,同样是用来遍历数组。在实际操作中与

section 功能一样,但foreach在Smarty一般用来处理一维数组。

 

=======无键值数组
{foreach from=$name item=id}
id: {$id}
 
{/foreach}
=======有键值数组
{foreach key=j item=v from=$name }
{$j}: {$v}
 
{/foreach}

2、include 多功能使用

{include file="header.htm"}
{include file="D:\www\head.htm"}
{include file='head.htm' title="MainMenu"}

3、IF条件语句的使用


 

{if $name=='ok'}
{else}
{/if}

4、literal strip 文本的处理技巧

literal数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用

于显示有可能包含大括号等字符信息的 Javascript 脚本

 

{literal}
 
{/literal}

 

strip标记中数据的首尾空格和回车. 这样可以保证模板容易理解且不用担心多余的

空格导致问题.{strip}{/strip}

PHP模板引擎Smarty缓存应用

1、Smarty缓存的配置

2、Smarty缓存的使用和清除

3、Smarty局部缓存

4、MYSQL与Smarty的应用


1、Smarty缓存的配置

$smarty->cache_dir ="/caches/";  //缓存目录
$smarty->caching = true;  //开启缓存,为flase的时侯缓存无效
$smarty->cache_lifetime = 60;  //缓存时间

2、Smarty缓存的使用和清除

$smarty->display('cache.tpl',cache_id);  //创建带ID的缓存
$smarty->clear_all_cache(); //清除所有缓存
$smarty->clear_cache('index.htm'); //清除index.tpl的缓存
$smarty->clear_cache('index.htm',cache_id);//清除指定id的缓存

 

3、Smarty局部缓存

insert 函数默认是不缓存的。并且这个属性不能修改

 

index.htm
{insertname="get_time"}
index.php function insert_get_time(){ return date("Y-m-d H:m:s"); }

 

smarty_block 函数功能更加强大,使用方法同上

 

{blockname}
没有缓存的:{$smarty.now}
{/blockname}

 

 

 

 

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Javascript中带有加号 - 减号(±)的极坐标曲线方程 - Polar curve equation with plus-minus sign (±) in Javascript
    IamtryingtodrawpolarcurvesonHTMLcanvasusingJavascript.WhatshouldIdowhenIwanttoco ... [详细]
  • 前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是 ... [详细]
  • 表单提交前的最后验证:通常在表单提交前,我们必须确认用户是否都把必须填选的做了,如果没有,就不能被提交到服务器,这里我们用到表单的formname.submit()看演示,其实这个对于我们修炼道 ... [详细]
author-avatar
sundy柳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有