1. <?php
  2. require_once 'inc/libs/Smarty.class.php';
  3. $s=new Smarty();
  4. // echo $s::SMARTY_VERSION;
  5. // echo smarty::SMARTY_VERSION;//输出版本号
  6. $s->debugging=false;
  7. $s->setTemplateDir('html');
  8. $s->assign('title','我的网页');
  9. $s->assign('address',['郑州','北京','上海']);
  10. class st{
  11. public $name="jack";
  12. public $age=20;
  13. public $address="郑州";
  14. }
  15. $st=new st();
  16. $s->assign('st',$st);
  17. $s->display('index.html');
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>网站首页</title>
  6. </head>
  7. <body>
  8. <h1>显示学生姓名:{$st->name}</h1>
  9. <h1>{$title}</h1>
  10. <hr>
  11. {*模板的注释语句 *}
  12. {foreach $address as $k=>$v}
  13. {$v}<br>
  14. {foreachelse}
  15. 没有数据循环
  16. {/foreach}
  17. </body>
  18. </html>

设定时区
date_default_timezone_set('prc');
分配数据变量
$s->assign('age',100);  
index.html读取
<h1>{$age}</h1>  
模板注释语句
{*模板注释*}
修饰变量
  
$s->assign('address',['郑州','北京','上海']);  
<h1>{$address[0]}</h1>  只显示一条信息
数组的循环输出
{foreach $address as $k=>$v}
{$v}<br>
{foreachelse}
    没有数据循环

{/foreach}

 输出下标
{foreach $address as $k=>$v}
{$k}<br>
{foreachelse}  
    没有数据循环
{/foreach} 
{foreach $num as $k=>$v}
{$v}----{$k}---{$v@index}---{$v@first}
---{$v@last}---{$v@total}---{$v@iteration}<br>
{foreachelse}
没有循环数据输出

{/foreach} 


{cycle values='green,red,yellow'} 显示隔行的颜色
  1. {foreach $num as $k=>$v}
  2. <span style="color:{cycle values='green,red,yellow'}">
  3. {$v}----{$k}---{$v@index}---{$v@first}
  4. ---{$v@last}---{$v@total}---{$v@iteration}<br>
  5. </span>
  6. {foreachelse}
  7. 没有循环数据输出
  8. {/foreach }

 

引入时一定注意此文件的编码要修改为utf-8;
编写一个类在php文件中
  1. class st{ //创建类并读出来
  2. public $name="jack";
  3. public $age=20;
  4. public $address="郑州";
  5. }
  6. $st=new st();
  7. $s->assign('st',$st);
html文件中调用
  1. <h1>显示学生姓名:{$st->name}家庭住址:{$st->address}学生年龄{$st->age}岁</h1>
smarty连接mysql读取数据库的信息
  1. //pdo 查询显示数据
  2. include 'Db.class.php';
  3. $db = new Db();
  4. $s->assign('stu',$db->query('pro','title,img'));
html显示数据{$v@iteration}显示前面的数字
  1. {foreach $stu as $v}
  2. {$v@iteration}、{$v['title']}<br>
  3. {foreachelse}
  4. 没有数据读出
  5. {/foreach}
{counter}记数器
  1. {counter}、kljfdsj<br>
  2. {counter}、dsfksldjf<br>
  3. {counter}、dskf<br>
  4. {counter}、kljfdsj<br>

  1. {counter name=aa skip=1 start=10}、郑州<br>
  2. {counter name=aa}、北京<br>
  3. {counter name=aa}、上海<br>
  4. {counter name=aa}、天津<br>


也可以读出多个字段
  1. {foreach $stu as $v}
  2. {$v@iteration}、{$v['title']}===={$v['img']}<br>
  3. {foreachelse}
  4. 没有数据读出
  5. {/foreach}
模板中定义变量并输出直接在html页面直接编写并输出
  1. {*模板文件中定义变量*}
  2. {$age=20}
  3. {$add='郑州'}
  4. {$love=['音乐',20]}
  5. {$age}----{$add}----{$love[0]}//输出
时间格式的函数
  1. {*直接调用函数*}
  2. {date('Y-m-d H:i:s')}<br>
  3. {time()|date_format:'Y-m-d H:i:s'}
{$smarty.server.SERVER_NAME}  获取域名
{$smarty.server.REMOTE_ADDR}  获取客户ip
default 如果接不到值会有默认值|为变量的修饰器或调节符
  1. {$smarty.get.id|default:1}
  2. {$smarty.post.id|default:1}
  3. {$smarty.request.id|default:1}
  4. {$smarty.session.user|default:'jack'}
{literal}  {/literal}   {*忽略不适用模板解析*} 忽略如果不加就会报错否则格式要修改为如下的格式

  1. <script>
  2. function aa(){
  3. alert('ok');
  4. }
  5. aa();
  6. </script>
  1. <script>
  2. function aa(){alert('ok');}
  3. aa();
  4. </script>
或者为加上{literal} 任何格式都可以出现结果
  1. {literal}
  2. <script>
  3. function aa(){alert('ok');//不换行不能输出
  4. }
  5. aa();
  6. </script>
  7. {/literal}
truncate:数字:要省略显示的符号   表示截取多少个字串 字符串截取
  1. $s->assign('title','aaa的水立方接收到了解放了圣诞节福利圣诞节疯狂两三点');
  1. <h1>{$title|truncate:11:'###'}</h1>

  1. <h1>{$name='打了飞机冻死了房间里撒大家分开了圣诞节分类考试大姐夫'}</h1>
  2. <h1>{$name|truncate:10}</h1>

加密函数的使用
  1. {$i='ok'}
  2. {$i|md5}


upper转换为大写  ,lower全部转换为小写

  1. $s->assign('title','aaa的水立方接收到了解放了圣诞节福利圣诞节疯狂两三点');
  1. <h1>{$title|default:'未分配'|upper|truncate:11}</h1>
smarty 框架的内置函数max最多循环几次,step为步长
for语句
  1. {for $i=1 to 10}
  2. {$i}
  3. {/for}
while语句
  1. {$n=1}
  2. {while $n<10}
  3. {$n++}
  4. {/while}
当需要导入一个文件时在zend里面没有指定字符集会默认为gbk所以要修改字符集为uft-8

在同级的html文件中编写
  1. include 'footer.html';
if判断函数
  1. {if 1==1 }
  2. ff
  3. {/if}
  4. {$n=1}
if else
  1. {if 1==2}
  2. {else}
  3. yyyy
  4. {/if}
if else if
  1. {if 1==2}
  2. 2
  3. {else if 1==3}
  4. 3
  5. {else if 1==4}
  6. 4
  7. {else}
  8. 5
  9. {/if}
capture 里面可以一段一段的写然后调用
  1. {capture assign="info"}
  2. dsflsd<br>
  3. dafd<br>
  4. {time()}
  5. {for $y}
  6. {/capture}
  7. {$info}
{*fetch 抓取其他网页拿过来抓取的只是一个效果*}

{fetch file="http://www.baidu.com"}  

{cycle values='red green yellow'}隔行换色
  1. {for $i=1 to 50}
  2. <div style="background-color:{cycle values='green,yellow,red,blue'};margin:20px auto; width:600px;">{$i}</div>
  3. {/for}

php代码单选多选下拉列表
  1. $s->assign('add',['hn'=>'河南省','sh'=>'上海','bj'=>'北京']);
  2. $s->assign('adf',['河南省','上海','北京']);
html代码
  1. {html_checkboxes name='id' options=$add selected='bj' separator='&nbsp;&nbsp;'}<br>
  2. {html_checkboxes name='id' output=$adf selected=['河南省','北京'] values=$adf separator='&nbsp;&nbsp;'}<br>
  3. {html_radios name='id' output=$add selected='上海' values=$add separator='&nbsp;&nbsp;' }<br>
  4. {html_options name='id' output=$add selected='上海' values=$add separator='&nbsp;&nbsp;' }<br>
  5. {html_options name='id' options=$add selected='bj' values=$add separator='&nbsp;&nbsp;' }<br>

{mailto address="dfsfds@126.com"}点击可以直接登录发送邮件

<a href="mailto:webrex@126.com">给我写信</a>  

 随机色
  1. if($c=='rand'){
  2. $cs='0123456789abcdef';
  3. $ccc='#';
  4. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  5. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  6. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  7. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  8. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  9. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  10. $c=$ccc;
  11. }
编写颜色修饰器modifier.cc.php
  1. <?php
  2. function smarty_modifier_cc($string,$c='rand'){
  3. if($c=='rand'){
  4. $cs='0123456789abcdef';
  5. $ccc='#';
  6. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  7. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  8. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  9. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  10. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  11. $ccc.=substr($cs, mt_rand(0,strlen($cs)-1),1);
  12. $c=$ccc;
  13. }
  14. return "<span style='color:$c'>$string</span>";
  15. }
  1. {$title|cc}<br>
不要修改此文件,此文件为编译型的修改器







smarty 模板的入门使用的更多相关文章

  1. Smarty模板快速入门

    文件下载 1.下载地址:http://www.smarty.net/ 2.我下载的版本是3.1.27 ,将下载的文件smarty-3.1.27.zip解压出来,然后将libs文件夹的所有文件复制到你的 ...

  2. 【Ecmall】ECMall2.x模板制作入门系列(认识ECMall模板)

    ECMall2.x模板制作入门系列之1(认识ECMall模板) 从ECMall2.0全新架构发布以来,随着版本的不断更新,ECMall已经逐渐走向一个稳定时期,是时候整理一些实用教程了.下面给大家带来 ...

  3. ECMall2.x模板制作入门系列之2(模板标签/语法)

    ECMall2.x模板制作入门系列之2(模板标签/语法) 今天给大家带来一个模板语法的教程.希望能为ECMall模板制作者提供一份参考资料.如有问题.建议和意见,欢迎提出. 在ECMall模板中,用& ...

  4. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  5. 12月15日下午Smarty模板函数

    1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...

  6. 12月15日smarty模板基本语法

    smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...

  7. SMARTY模板中如何使用get,post,request,cookies,session,server变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...

  8. ThinkPHP3.2.3整合smarty模板(二)

    前言:继ThinkPHP3.2.3整合smarty模板(一)之后,继续来探讨一下tp框架整合smarty模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...

  9. smarty 模板几个例子

    一.assign和display方法的使用以及几个变量调节器 header("content-type:text/html;charset=utf-8");//加载Smarty引擎 ...

随机推荐

  1. python之错误和异常

    错误 分为语法错误和逻辑错误,如下: 语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器编译. 逻辑错误可能是由于不完整或是不合法的输入所致,或者是无法生成.计算.或是输出结果需要的过程无法 ...

  2. 浅入浅出EmguCv(二)EmguCv打开指定图片

    从这篇文章开始,会介绍一些通过EmguCv实现的一些简单的功能,这个内容的更新会跟我学习OpenCv的进度有关,最近在看一本关于OpenCv的书——<学习OpenCv>,主要例子还是通过这 ...

  3. RDLC An unexpected error occurred while compiling expressions. Native compiler return value: '-1073741511'

    One of my web project, which has a rdlc file using some expressions, was working fine while developi ...

  4. Lab_4_SysOps_Monitoring_Linux_v2.5

    System Operations - Lab 4: Monitoring with CloudWatch (Linux) - 2.5 ================================ ...

  5. Nginx去除版本号

    1.在配置文件中的 http节点中加入server_tokens off; 2.更改源码隐藏nginx软件的名称 1). 查看Nginx编译的参数/usr/local/nginx/sbin/nginx ...

  6. android-23 View.java - dispatchTouchEvent源码

    public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource { /** * ...

  7. PLSQL Developer图形化窗口创建数据库全过程

    1.用系统管理员登陆,我这里用户名是system,密码是manager2.首先建立表空间(tablespaces),点击file->new->sql window   create tab ...

  8. 并发-Java中的Copy-On-Write容器

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...

  9. JVM实用参数(七)CMS收集器

    HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间.该目标对于大多数交互式应用很重要,比如web应用.在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器 ...

  10. C#位操作(转)

    在C#中可以对整型运算对象按位进行逻辑运算.按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位.C#支持的位逻辑运算符如表2.9所示. 算符号 意义 ...