今天学的传说中smarty模版,为什么使用smarty,smarty的好处是什么:

将一些判断放在了HTML模板文件中,本身用模板的目的就是分开PHP代码和HTML,

这样不仅PHP中有判断,HTML也有判断,在一定程度上(对于美工设计或页面设计人员)加大了开发难度。

当然,在小型和一部分中型web开发中这样做是可以的。但在大型WEB项目中,这样做就不好了。

smarty原理

1>访问php文件

2>在php文件中加载模版引擎

3>分配变量给smarty模版

4> 将模版导入(可以有多个模版,例如QQ空间的皮肤)

5>将模版变量替换掉

6>生成编译的文件

7>在php里通过模版引擎将编译后的文件输出—>ok!

下边给个实例:::::::::

假设smarty解压安装在网站根目录的smarty目录下
1.smarty的配置
      首先,使用smarty第一件事是先配置好,一般有以下9行代码

require_once("smarty/libs/Smarty_class.php"); //把smarty的类定义文件包含进来
      $smarty=new smarty();
      $smarty->config_dir="smarty/libs/Config_File.class.php";
      $smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
      $smarty->cache_dir="smarty_cache/"; //缓存文件夹
      $smarty->template_dir="smarty_tpl";           //模板文件夹
      $smarty->compile_dir="smarty_compile";      //编译文件夹
      $smarty->left_delimiter="<{";            // 标签符定义不是必要的,smarty默认是使用"{"和"}",强烈建议更换。
                                         //因为如果smarty的标签刚好在javascript语句里面时,冲突的可能性很大
      $smarty->right_delimiter="}>";

以上的9行代码可以放在一个独立的文件,需要使用smarty的页面引用进来即可

2. smarty的使用
      smarty替换标签的语法:
      smarty->assign("标签名","值");
      smarty->display("index.html"); //显示内容,index为模板文件名

假定模板文件里面有一个标签 <{ $user_name }> (注意:标签里面的变量必须带$)
那么在PHP文件可以:
      $new_name="Joan";
      smarty->assign("user_name",$new_name); (注意:在此时,user_name是不带$的)
      smarty->display("index.html"); //显示内容,index为模板文件名

3. smarty的循环
      循环的使用在php文件像处理普通标签一样处理
    
      模板文件代码:
      <table border=1 width=500>
<{section name=s loop=$stu}>
      <tr>
      <td>
           <{$stu[s]}>
      </td>
      </tr>
<{/section}>
      </table>

那么在PHP文件可以:
假如有一个数组,或一个记录集 $rs
$smarty->assign("stu",$rs);
$smarty->display("index.html"); //在PHP文件处理循环标签和普通标签没什么区别。

4.     smarty的if 语法
      模板文件
      <{if $my_r>500 }>
           <{$my_r}>
      <{/if}>

php文件:

$aa=123;
      $smarty->assign("my_r",$aa);    
      $smarty->display("in.html");
上例中,如果$aa>500,my_r的标签就能显示出来,否则不显示。
<{ if 条件 }> //此处的条件不要加括号,也不要像basic语言那样在后面加 then

<{/if}>

5. smarty循环配合if 使用实例

PHP文件
----------------------------------
      $aa[0]=123;
      $aa[1]=456;
      $aa[2]=789;
      $smarty->assign("my_r",$aa);
      $smarty->display("in.html");

模板文件
------------------------------------------------------
      <{ section name=s loop=$my_r }>
      <{if $my_r[s]>200 }>
      <{$my_r[s]}>
      <{else}>
           小于200
      <{/if}>
      <br>
      <{/section}>
-----------------------------------------------
上例中,只显示大于200的数值

<{ section name=s loop=$my_r }>
      <{if $my_r[s]=="456" }> //这是字符型的实例,用==
      <{$my_r[s]}>
      <{else}>
           Not
      <{/if}>
      <br>
<{ /section }>

Smarty介绍安装及配置相关推荐

  1. Kali Linux常用服务配置教程安装及配置DHCP服务

    Kali Linux常用服务配置教程安装及配置DHCP服务 在Kali Linux中,默认没有安装DHCP服务.下面将介绍安装并配置DHCP服务的方法. 1.安装DHCP服务 在Kali Linux中 ...

  2. 《Cacti实战》——2.2 安装与配置相关组件和服务

    本节书摘来自华章计算机<Cacti实战>一书中的第2章,第2.2节,作者:刘钊,张跃著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 安装与配置相关 ...

  3. windows ce 安装java,Windows环境下JDK安装和配置

    相信所有学习Java的朋友应该都在Windows操作系统中安装和配置过JDK,这里我们将详细介绍安装和配置过程! 在Linux环境下安装JDK可参考:Linux环境下JDK安装和配置 下面我们开始讲解 ...

  4. SQL Server 2016 AlwaysOn 安装及配置介绍

    SQL Server 2016  AlwaysOn 安装及配置介绍 Always On 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案. SQL Server 2012 ...

  5. 高性能集群软件Keepalived的介绍以及安装与配置

    Keepalived介绍: Keepalived是Linux下一个轻量级的高可用解决方案:起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态.它根据TCP/IP参考模型的第三.第四和第五层 ...

  6. 1. 初探MongoDB —— 介绍、安装和配置

    一.写在前面 之前一直以来,都是使用关系型数据库.也很早就听闻,当数据量大的时候,关系型数据库使用起来会有很多问题.诸如查询数据慢,加载花费时间长等等. 也早就耳闻NOSQL(NoSQL = Not ...

  7. Centos 6.4下MySQL安装及配置介绍

    我们前面文章有介绍到的功能主要用于近期公司的环境架构建设,所以今天得文章也主要是为了公司的环境搭建的测试:继续废话一些,由于公司的站点服务器分别部署在中国和美国(两台),中国及美国的相关用户会不定时的 ...

  8. redhat linux 安装ftp服务,RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器

    本文以RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器. 安装服务器程序 程序下载地址:,目前最新版本为2.0.3,源程序文件名为vsftpd-2.0.3.tar.gz. ...

  9. 开源监控Prometheus介绍,安装,配置,使用详解

    介绍 什么是Prometheus? Prometheus是一个开源监控系统,前身是SoundCloud的告警插件.从2012年开始,Prometheus逐渐被大量公司使用.该项目的社区也便跃起来,收到 ...

最新文章

  1. mysql数据库---授权语句以及备份
  2. RabbitMQ-c在Linux上编译
  3. ansible-playbook如何判断并中断执行
  4. Hyper-V 2016 系列教程15 Hyper-V Cmdlets PowerShell 命令提示符
  5. 查看hdfs目录的方法
  6. Java并发编程实例(synchronized)
  7. Weblogic 错误 BEA-000403 BEA-000438解决办法
  8. python中r55的执行结果是_import numpy as np
  9. java判断闰年通过多态方法_04748《Java语言程序设计》实验指导书.doc
  10. STM32——库函数开发小结
  11. jeesite在eclipse中部署
  12. redis——redis事务相关处理
  13. js用函数实现输出100以内与7有关的数_走近(javascript, 函数式)
  14. Mysql基础系列(一)
  15. py加PHP,浅谈PHP运行Python脚本的方法
  16. C语言中的宏之#define
  17. 【工控老马】PLC六路抢答器系统设计详解
  18. 2023扬州大学计算机考研信息汇总
  19. 【iOS】—— 多线程编程八重曲之(二)- Pthread
  20. tensorflow安装 报错ConnectionResetError(10054, ‘远程主机强迫关闭了一个现有的连接。

热门文章

  1. 按类别分类统计符合,不符合个数
  2. 网店红包好评返现预计要迎来严打
  3. DIY解决《魔兽争霸3:混乱之治》人族第六章游戏黑屏的问题。
  4. 【安卓逆向】CTF实战分析
  5. 2023年计算机考研经验贴
  6. 重磅!产品经理薪资报告2021.PDF
  7. 没什么技术含量的Remove Before Flight
  8. ArcGIS数据处理JPG图片地理配准和矢量化空间校正
  9. 回家的路总是那么曲折
  10. 为什么我要回国上ONPS暑校,暑校联盟哪家强?