1.什么事smarty?

不知道,smarty是一个使用PHP写出来的模板引擎,它提供了逻辑外在内容的分离

2.smarty优点:

a.速度:成熟的模板引擎技术

b.编译型:采用smarty编写的程序运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将web
请求直接转换到这个文件中,而不再进行模板重新编译

c.缓存技术:smarty选用的一种缓存技术,她可以将用户最终看到的HTML文件缓存成一个静态HTML页面,当设定smarty的cache属性为true时,

在smarty设定的cachetime期内用户的web请求直接转换到这个静态HTML文件中来,这相当于调用一个静态的HTML文件

d.插件技术:smarty可以自定义插件。插件实际就是一些自定义的函数

模板中可以使用if/elseif/else/endif.在模板文件使用判断语句可以非常方便的对模板进行格式重排

3.smarty缺点:

a.需要实时更新的内容,需要经常对数据进行跟新,这类型程序使用smarty会使模板处理速度变慢

b.小项目

tpl 表示一个smarty的模板

实例:lib里建立tpl模板,如:eg01.tpl

代码:

<html>
<head><title>模板中内定的一些函数</title></head>
<body> {*下面的这一段相当于在模板内部定义一个变量UserName*}
{assign var="UserName" value="大师兄"}
这里将显示模板内部定义的一个变量:UserName = {$UserName} 下面的这一行将显示3个checkBox:<br>
{html_checkboxes name="CheckBox" values=$CheckName checked=$IsChecked output=$value separator="<br />"}
下面在这一行将显示3个radio:<br>
{html_radios name="RadioBox" values=$RadioName checked=$IsChecked output=$value separator="<br />"} 下面显示一个月,日, 年选择框:<br>
{html_select_date} <hr><b>CopyRight(C) By XiaoJun, Li 2004<b>{mailto address="teacherli@163.ccom" text="联系作者"} </body>
</html>

  

eg01.php:

<?php
require_once ("./comm/Smarty.class.php"); $smarty = new Smarty();
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->config_dir = './configs/';
$smarty->cache_dir = './cache/';
$smarty->caching = false; //--------------------------------------------------------------------------------------
//处理{html_checkboxes name="CheckBox" values=$CheckName checked=$IsChecked output=$value separator="<br />"}
//--------------------------------------------------------------------------------------
$smarty->assign('CheckName', array(
1001 => '语文',
1002 => '数学',
1003 => '外语'));
$smarty->assign('IsChecked', 1001); //--------------------------------------------------------------------------------------
//处理{html_radios name="RadioBox" values=$RadioName checked=$IsChecked output=$value separator="<br />"}
//--------------------------------------------------------------------------------------
$smarty->assign('RadioName', array(
1001 => '语文',
1002 => '数学',
1003 => '外语'));
$smarty->assign('IsChecked', 1001); //--------------------------------------------------------------------------------------
//{html_select_date}不用处理会自动输出
//-------------------------------------------------------------------------------------- $smarty->display("example3.tpl");
?>

纯学习内容

smarty函数:

$smarty  = new Smarty();//简历实例对象

$smarty->template_dir = './templates' //设置模板目录

$smarty->compile_dir = './templates_c' //设置编译目录

$smarty->left_delimiter = '<{'; //定义左边界

$smarty->assign('name','杨玲');//进行模板变量替换

$smarty->assign('yang',array( //制定一维数组

a=>'A',

b='B',

c='C'));

//制定二维数组

$array[] = array('id'=>'001','title'=>'one');

$array[] = array('id'=>'002','title'=>'two');

$smarty->assign('news',$array);

$smarty->cache_dir = './cache/';//设置缓存目录

$smarty->caching = false;

$smarty->config_dir = './configs/';//设置配置文件目录

$smarty->display('eg01.tpl');//编译并显示位于./templates下的eg01.tpl模板

连接数据库

<?php
$db = mysql_connect("localhost","root","root") or die('数据库连接错误');
mysql_select_db("News",$db);
//连接上数据库后,处理语句都是原生态php函数
$query = "select id,title from news_test order by orderby_id";
$result = mysql_query($query);
while($row = myswl_fetch_array($result)){
$array[] = array('id'=>$row['id']),
'tilte'=>$row['title']
}
$smarty = assign("News_A",$array);
unset($array);//注销,对$array赋值时,不会清空它,而是增加新元素
mysql_free_result();
mysql_close($db);

  比较常用的函数和基础知识在这了,继续学习

smarty的学习计划(1)的更多相关文章

  1. smarty的学习计划(2)

    连接数据库时,处理数据用原生态的PHP函数???NO,我们用phplib里的DB类,它文件小.加载速度快而备受人们喜爱. copy一个目录表: web(站点根目录) |-----libs(Smarty ...

  2. 【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划

    发个通知,过段时间学习计划相关的东西就出来了,上次写了篇指引文章后有些好奇心颇重的人跟我说:“发现最近群知识库和技能库更新的频率有点大,这是要放大招的节奏啊!” 很多想学习却不知道如何规划的人想要一个 ...

  3. 实战java虚拟机的学习计划图(看懂java虚拟机)

    啥也不说了,实战java虚拟机,好好学习,天天向上!针对自己的软肋制定学习计划. 一部分内容看完,自己做的学习笔记和感想. 学java很简单,但懂java会有难度,如果你的工资还没超过1W,那是时候深 ...

  4. 6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.)

    作者:余博伦链接:https://zhuanlan.zhihu.com/p/23412169来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 和大家一样,最近我也看了Jo ...

  5. 关于JAVA学习计划和感想

    学习计划第一阶段:    JAVA语言基础知识.包括异常.IO流.多线程.集合类.    要求:异常------掌握try-catch-finally的使用          IO流------掌握字 ...

  6. 寒假学习计划(c++作业2)

    C++学习计划 一.课程概况 1.课程名称:c++远征攻略 2.授课人姓名:james_yuan 3.课程链接地址:http://www.imooc.com/course/programdetail/ ...

  7. .net程序员的学习计划

    .net程序员的学习计划 与其说是计划,不如说是抄来的课程表.基于最近老大要求写一份一年的职业规划.我是一个向来没什么规划的人,不是职场规划,就连平时的规划都没有,基本上就是有什么任务就去完成.回想起 ...

  8. linux-kernel 学习计划

    [资料] http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp http://www.kerneltravel.net/ [ ...

  9. [转]Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划

    转自:Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划 前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了Surfa ...

随机推荐

  1. 老李分享:SSL协议相关证书

    老李分享:SSL协议相关证书   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088214 ...

  2. 老李分享:Android -自动化埋点 2

    除了上述的事件,Android提供了一个OnTouchListener的监听器,当事件传递到控件的时候,如果控件注册了这个监听器,则会执行监听器中的onTouch方法.同时,如果它返回true,则事件 ...

  3. iptables初探

    一,前言 本来想起个名字叫做"小白都是怎么学习iptables的?"或者"你为什么还不了解iptables?"等等,就像简书上的头条文章,虽然被说成" ...

  4. CSS3 转换、过渡和动画

    一.转换 1.属性:transform 取值:none/transform-function(转换函数) 注意:如果要实现多个转换函数的话,可以用空格分开若干transform-function 2. ...

  5. 使用FSharp 探索Dotnet图像处理功能2--均衡灰度

    重新捡起大学里的图像处理,好像之前什么都没学到,但是我为什么还留着这本书呢?嘿嘿. 看到均衡灰度处理,上来就是积分,概率分布的公式,头微微的有点疼.网上看了点介绍,隔天再拿起书本,总算有了点眉目.简而 ...

  6. Python 列表(List) 的三种遍历(序号和值)方法

    三种遍历列表里面序号和值的方法: 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,特在情人节这一天写下了这篇博客,下面废话不多说,直接贴代码 #!/usr/bin/env pyth ...

  7. TCP/IP笔记(六)TCP与UDP

    终于来到了传输层,这个面试问的最多了,内容比较多,要分两篇来总结,这是第一篇

  8. 树状数组 && 线段树

    树状数组 支持单点修改 #include <cstdio> using namespace std; int n, m; ], c[]; int lowbit(int x) { retur ...

  9. Nginx Access Log日志统计分析常用命令

    Nginx Access Log日志统计分析常用命令 IP相关统计 统计IP访问量 awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时 ...

  10. php checkbox 从数据库读取和写入

    checkbox将选中的值写入数据库中,在修改的时候如何从数据库中读取并设定Checkbox的状态 1.写入数据库提交后因为你的rol是数组,所以可以使用$_POST获取 PHP code   ? 1 ...