热门标签 | 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}

 

 

 

 

推荐阅读
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 本文详细介绍了 phpMyAdmin 的安装与配置方法,适用于多个版本的 phpMyAdmin。通过本教程,您将掌握从下载到部署的完整流程,并了解如何根据不同的环境进行必要的配置调整。 ... [详细]
  • 本文详细介绍了在腾讯云服务器上配置 phpMyAdmin 的方法,包括安装、配置和解决常见问题。通过这些步骤,您可以轻松地在腾讯云环境中部署并使用 phpMyAdmin。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 精致小屏灰色风格苹果CMS v10模板,支持DIY主题管理系统
    探索一款专为影视站设计的苹果CMS v10模板,具备强大的主题管理系统和500多个设置项,无需二次开发即可轻松配置。下载地址:https://www.mytheme.cn/maccms/244.html,演示地址:http://demo.mytheme.cn/index.php?id=244。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文深入探讨了JavaScript中循环结构的使用方法,特别是While循环,用于重复执行一段代码直到特定条件不再满足。同时,文章还介绍了Switch语句在多条件分支选择中的应用。 ... [详细]
  • 探讨了在用户浏览不同页面时,如何无缝循环播放背景音乐的技术方案,包括自动播放和跨页面状态保持。 ... [详细]
  • 我有这种ajax$.ajax({type:"POST",url:"bee_sesi_edit.php&# ... [详细]
  • 探讨在特定情况下使用 Knockout.js 的 if 或 visible 绑定的最佳实践,特别是在处理未定义对象时的策略。 ... [详细]
  • 本文探讨如何在VueJS项目中通过配置vue.config.js文件实现多页面应用(MPA),特别是针对管理端和客户端的不同需求。 ... [详细]
  • 本文介绍如何使用 Bootstrap-table 插件实现表格中某一列数据的求和,并在表脚显示总计值。 ... [详细]
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社区 版权所有