0810 smarty
1.Smarty简介(why,what)
why:
smarrty 将前端工程师和程序员的工作分开,让前端工程师完成前台页面的工作,程序员完成后台的业务逻辑。
what
模版引擎是用来将PHP代码和模版页组合成PHP 混合页的PHP类
2.smarty版本
smarty-2.6.26.zip
smarty-stable-3.1.8.zip
internals
plugins 插件
config_file.class.php 配置文件
debug.tpl 调试类
smarty.class.php smarty类
smarty_compiler.class.php 编译类
3.快速入门
步骤:
创建2个目录:templates,模板目录;templates_c编译后的目录
实例化类,开始初始化(3行)
4.smarty执行步骤详解
①浏览器访问PHP程序
②PHP将模版引擎加载进来
③模版引擎将PHP中变量加载到引擎类
④模版引擎将美工模板文件(TPL)加载到引擎类
⑤模版引擎合成编译后的模版文件
⑥将合成好的模版文件导入回PHP程序
⑦由PHP文件输出最终效果
注意:
①判断如果存在编译后的文件(com)则不加载引擎而直接输出编译后的文件(com)
②判断TPL模版文件有没有被修改过,如果没有修改则直接输出,如果修改过则从步骤②开始执行编译
5.smarty详细初始化配置
<?php
//引入smarty类
include('libs/Smarty.class.php');
//初始化
$smarty = new Smarty();
$smarty->assign('aa','aaaaaaaaaaa'); //指定模板的目录
$smarty->template_dir = 'tpl';
//指定编译的目录
$smarty->compile_dir = 'com'; //定义坐标的{
$smarty->left_delimiter = '<{';
$smarty->right_delimiter = '}>'; //缓存
$smarty->caching = ;
//1是开启,0是关闭 $smarty->cache_dir = 'caches';
$smarty->cache_lifetime = ; //插件
$smarty->plugins_dir = 'plugins'; //配置文件
$smarty->config_dir = 'configs'; //配置文件
$smarty->debugging = true; //加载模板页
$smarty->display('index.html');
?>
6.smarty语法&控制流
7.模版中显示数据
直接显示
<legend>直接访问数组</legend>
显示索引数组:
{$arr_1[0]}
<br />
显示关联数组:
{$arr_2.aa}
<br />
显示二维数组
{$arr_3[2].cc}
foreach
{foreach from=$arr_4 item=val}
{foreach rom=$val item=v}
{$v}
{/foreach}<br />
{/foreach}
foreach($arr_4 as $val){
foreach($val as $v){
echo $v;
}
}
section
{section loop = $arr_4 name=aso}
<tr>
<td>{$arr_4[aso].name}</td>
<td>{$arr_4[aso].sex}</td>
<td>{$arr_4[aso].power}</td>
<td>{$arr_4[aso].skill}</td>
</tr>
{/section}
$arr_4 数组直接放到$arr[aso]
8.smarty&js整合
9.smarty&mysql整合
$db = new PDO('mysql:host=localhost;dbname=news;charset=UTF-8', 'root', '12345');
声明数据库类型 数据库地址/名称 数据库里的具体库名 用户名 密码
$db->query();vs db->exec();区别
//query返回有结果集的,没有结果集的用
$db->fetchAll(); //所以记录
$db->fetch();//单行记录
$db->rowCount();//有几条记录
$db->lastInsertId();//最后一条插入的id
匈牙利命名法:fetch_all()
驼峰命名法: fetchAll
10.smarty&MVC整合
0810 smarty的更多相关文章
- Smarty的基本使用与总结
含义: Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来. 环境需求:PHP5.2或者更高版本 我使用的环境是:PHP5.3,wi ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- smarty使用
smarty-牛刀小试 smarty 初识 官网 http://www.smarty.net/ Smarty is a template engine for PHP(PHP模板引擎) smarty使 ...
- Smarty模版引擎的原理
Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提 ...
- 12月15日下午Smarty模板函数
1.{$var=...} 这是{assign}函数的简写版,你可以直接赋值给模版,也可以为数组元素赋值. <{$a = 10}><!--赋值语句--> <{$a}> ...
- 12月15日smarty模板基本语法
smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...
- 12月13日上午Smarty模版原理
模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYP ...
- SMARTY模板中如何使用get,post,request,cookies,session,server变量
{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...
- 在新浪云SAE中使用smarty引擎模版
在新浪云上使用smarty时会发现又这样的错误信息: “SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unab ...
随机推荐
- RS查询报错之递归公用表表达式不包含顶级 UNION ALL运算符
在FM里面涉及模型的时候,修改了物理层的查询SQL如下 select * from TARGET_VISIT_GH where ghksdm in(select dept_id from DIM_BI ...
- Windows Server 2012怎样部署Domain Controller
用过Windows Server2008 系统的运维师们,可能习惯于用dcpromo的方式部署Domain Controller,可是在WindowsServer2012操作系统已经把这样的部署方式取 ...
- Visual Studio 2013 Update2
下载: http://download.microsoft.com/download/6/7/8/6783FB22-F77D-45C5-B989-090ED3E49C7C/vs2013.2.iso
- Antlr与Regex
Antlr与Regex都是文本分析工具. Antlr内部分为词法(Lexer)和语法(Parser),在Antlr中,变量第一个字符大写表示词法,变量第一个字符小写表示语法.词法表示哪些是有效的词,语 ...
- 异类的Javascript处理和解析URL的方式
通常来说,我们使用Javascript处理和解析URL是使用location对象.在今天这个代码小技巧中,我们使用另外一个比较异类的方式处理和解析URL. 代码如下: function parseUR ...
- iPad Air PSD设计模板
免费下载 免费的ipad air PSD 设计,包含了3个不同颜色的外套的设计. 提供免费下载! 阅读原文:iPad Air PSD设计模板
- javascript&jquery 判断滚动到页面底部
js 判断滚动到页面底部 CreateTime--2018年4月14日10:13:07 Author:Marydon 1.使用场景: 滚动到屏幕底部,触发加载分页数据请求(qq空间,手机端) 2. ...
- 转载【微信支付】jsapi支付之传参问题(使用微信官方SDK之PHP版本) V3之WxpayPubHelper 亲测有效,V3WxpayAPI_php_v3.zip版未测试,理论上也是一样的。
本文转载至:http://blog.csdn.net/geeklx/article/details/51146151 (微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请 ...
- 【LeetCode】68. Text Justification
Text Justification Given an array of words and a length L, format the text such that each line has e ...
- 工作总结 @Html 辅助方法 为 生成的 标签设置元素属性 htmlAttributes 一个对象,其中包含要为该元素设置的 HTML 特性。
@Html.RadioButtonFor(m => m.IsJianChe, true, new { @style = "width: 18px; height: 18px;" ...