smarty—牛刀小试

###smarty 初识
- 官网 http://www.smarty.net/
- Smarty is a template engine for PHP(PHP模板引擎)

smarty使用:


index.php

    <?php
date_default_timezone_set("PRC");//PRC为“中华人民共和国”
require ('../smarty/Smarty.class.php');
$smarty = new Smarty(); /*Smarty配置(五配置两方法)2.0版本*/
// $smarty->left_delimiter = "{"; //左定界符
// $smarty->right_delimiter = "}"; //右定界符
// $smarty->template_dir = "tpl"; //html模板地址
// $smarty->compile_dir = "template_c"; //模板编生成的文件
// $smarty->cache_dir = "cache"; //缓存
//以下是开启缓存的另外两个配置。因为一般不用smarty的配置,这里作为了解
$smarty->caching = true; //开启缓存
$smarty->cache_lifetime = 120; //缓存时间 /*smarty3.0版本后的五配置*/
$smarty->setLeftDelimiter('{');//左定界符
$smarty->setRightDelimiter('}');//右定界符
$smarty->setTemplateDir('tpl/');//模板地址
$smarty->setCompileDir('template_c/');//编译文件
$smarty->setCacheDir('cache/');//缓存地址
$smarty->assign('articalTitle','奔波霸');
$smarty->display('test.tpl');
?>

test.tpl

  {$articalTitle};

smarty 输出数组


$arr = array("title"=>"lol","name"=>"德玛西亚");
$smarty->assign("arr", $arr);
$brr = array("artical"=>array("title"=>"lol","name"=>"德玛西亚"));
$smarty->assign("brr", $brr);
{$arr['title']}{$arr['name']};     {*一维数组*}{*注释*}
{$brr["artical"]["title"]}{$brr["artical"]["name"]} {*二维数组*}

smarty 注释


{* XXX *}

smarty 变量调节器




####capitalize,cat,upper,lower

$scale = "hello";
$smarty->assign("scale", $scale);
{$scale|capitalize};   {*首字母大写*}
{$scale|cat:" kity"} {*连接字符串*}
{$scale|upper}; {*大写变量调节器*}
{$scale|lower|upper}; {*小写变量调节器*}

date_format

$time = time();
$smarty->assign("time", $time);
{$time|date_format:"%B %e,%y %H:%M:%S"}; {*日期格式化*}

default

$lol = "";
$smarty->assign("lol", $lol);
{$lol|default:"诺克萨斯之手"}  {*默认输出*}

escape

$url = "https://www.baidu.com";
$smarty->assign("url", $url);
{$url|escape:"url"} {*url转码*}

nl2br

$str = "我有一只小毛驴\n从来也不骑";
$smarty->assign("str", $str);
{$str|nl2br}          {*换行符转换为br,html不识别\n,其中2(two)是to的谐音*}

smarty 对象赋值

class Cool {
function dd(){
echo "pilipala";
}
}
$obj = new Cool();
$smarty->assign("obj",$obj);
{$obj->dd()}

smarty 函数使用

function add ($params){           //$params为模板传递过来的数组变量
$p1 = $params["p1"];
$p2 = $params["p2"];
echo $p1."已经".$p2;
}
$smarty->registerPlugin("function", "f_test", "add"); //f_test为函数名字便于模板调用,add为函数本身
{f_test p1="苹果" p2="熟了"}      {*将后面的键值对组合为数组,作为参数传递给函数本身*}

smarty 使用php的变量调节器

smarty->assign("time", time());
$str = "我有一只小毛驴\n从来也不骑";
$smarty->assign("str", $str);
{"Y-m-d"|date:$time}           {*此处$time对应前面time,date调节器第一个参数为格式,第二个参数为日期*}
{"小"|str_replace:"大":$str} {*str_replace调节器,第一个参数为替换谁,第二个参数为替换为什么,第三个参数为被替换的字符串*}

smarty 编写插件




####function插件
plugins目录下新建function.插件名.php

如:function.test.php

function.test.php

<?php
function smarty_function_test($params){
$p1 = $params["p1"];
$p2 = $params["p2"];
echo $p1."已经".$p2;
}
?>

test.tpl

{test p1="苹果" p2="熟了"}

modeifier插件(变量调节器插件)

block插件(区块函数插件)

smarty 循环


$crr = array(array("title"=>"lol","name"=>"德玛西亚"));
$smarty->assign("crr", $crr);
{foreach $crr as $value}
{$value.title}
{$value.name}
{foreachelse}
没有
{/foreach}

smarty使用的更多相关文章

  1. Smarty的基本使用与总结

    含义: Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来. 环境需求:PHP5.2或者更高版本 我使用的环境是:PHP5.3,wi ...

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

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

  3. Smarty模版引擎的原理

    Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...

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

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

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

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

  6. 12月13日上午Smarty模版原理

    模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYP ...

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

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

  8. 在新浪云SAE中使用smarty引擎模版

    在新浪云上使用smarty时会发现又这样的错误信息: “SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unab ...

  9. MVC架构学习之Smarty学习——病来而蔫

    前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...

随机推荐

  1. RESTful Api 身份认证安全性设计

    REST是一种软件架构风格.RESTful Api 是基于 HTTP 协议的 Api,是无状态传输.它的核心是将所有的 Api 都理解为一个网络资源.将所有的客户端和服务器的状态转移(动作)封装到 H ...

  2. 【H5疑难杂症】脱离文档流时的渲染BUG

    BUG重现 最近机票团队在一个页面布局复杂的地方发现一个BUG,非常奇怪并且不好定位,这类问题一般最后都会到我这里,这个问题是,改变dom结构,页面却不渲染!!! 如图所示,我动态的改变了dom结构, ...

  3. android:布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!

    1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...

  4. Curator框架的使用

    Curator框架的目的是减少用户的复杂度,毕竟原生的Zookeeper难以使用. 这里举一个使用例子. 第一步:建立连接 // 以下代码与192.168.1.101:2181建立了连接Curator ...

  5. Git本地服务器搭建及使用详解

    Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...

  6. C#语言基础——递归

    递归 一.概念conception: 函数体内调用本函数自身,直到符合某一条件不再继续调用. 二.应满足条件factor: (1)有反复执行的过程(调用自身): (2)有跳出反复执行过程的条件(函数出 ...

  7. PostgreSQL隐藏字段tableoid

    问题来源: 今天群里有人问:tableoid字段在每行都有,而且一个表里面的值是重复的,这样不合理...... 因此做了一些分析: 1)创建了一个表 apple=# \d test_time Tabl ...

  8. RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用

    最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip

  9. Azure上的几个坑

    此文用于记录在使用Azure中国版时遇到的一些“坑”. 1.虚拟机备份/还原 在某些场景中,使用备份/还原功能来创建(克隆)虚拟机比使用capture的image要方便很多.虚拟机备份后,执行还原操作 ...

  10. 图片下方出现多3px的原因及解决方法

    产生原因:主要是因为图片的垂直对齐方式vertical-align引发的,默认值是baseline,默认为此值时图片下方就会多出3px. 解决方案: 1.将图片的垂直对齐方式vertical-alig ...