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. 任务调度之集群(基于Quartz.net)

    上一篇我们完成了任务调度的持久化,传送门:任务调度之持久化(基于Quartz.net) 这篇我们来完成Quartz.net的一个比较优秀的功能,即集群:集群可以提高任务调度服务的容灾性, 当一个节点宕 ...

  2. 记一次搭建SS服务器,完整的过程。

    前言 这几天为了登录外网查询资料,谷歌经常抽风,国外的博客也打不开,都要整崩溃了.我以前(直到昨天以前)都是使用修改hosts来访问外网的,用的是 老D(https://laod.cn/hosts)  ...

  3. CSS3学习笔记(2)-CSS盒子模型

    p{ font-size: 15px; text-indent: 2em; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid ...

  4. (转)Java并发编程:并发容器之CopyOnWriteArrayList

    原文链接:http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容, ...

  5. hdu 3032 Nim or not Nim? (sg函数打表找规律)

    题意:有N堆石子,每堆有s[i]个,Alice和Bob两人轮流取石子,可以从一堆中取任意多的石子,也可以把一堆石子分成两小堆 Alice先取,问谁能获胜 思路:首先观察这道题的数据范围  1 ≤ N ...

  6. java基础之类与对象3

    前面我的两篇文章主要介绍了将怎么将事物抽象为对象,以及对象的实例化(就是new一个对象).这篇文章里面我就讲下匿名对象... 还是就举之前的例子把,Car c = new Car();看到这个我们就知 ...

  7. 如何在 FineUIMvc 中引用第三方 JavaScript 库

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 引入第三方颜色选择器 在 FineUIMvc 中使用第三方 JavaScript 遵循一定的约定,也非常简单. 下面以官网示例为 ...

  8. 3 安装Zookeeper

    cnblogs-DOC 1.服务器环境 2.安装Redis3.安装Zookeeper4.安装MPush5.安装Alloc服务6.完整测试7.常见问题 从官网直接下载Zookeeper最新版本(Zook ...

  9. js中字符串转换为日期型

    简介:字符串转日期型函数 传入一个字符串格式的日期,如何转换为日期型的.以下为转换方案. //字符串转换为日期函数,返回日期型(传入的日期格式2014-04-22) function StringTo ...

  10. SVG如何做圆形图片

    SVG如何做圆形图片 2016年5月31日17:30:48 提到圆形图片,大家首先想到的一定是border-radius,但在SVG中这些方法很难起效,下面方法适合SVG中制作任意规则与不规则的图形. ...