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. Mesos+Zookeeper+Marathon+Docker分布式集群管理最佳实践

    参考赵班长的unixhot以及马亮blog 笔者QQ:572891887 Linux架构交流群:471443208 1.1Mesos简介 Mesos是Apache下的开源分布式资源管理框架,它被称为分 ...

  2. 手机自动化测试:Appium代码之Logger

    手机自动化测试:Appium代码之Logger   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest推出手机自动化测 ...

  3. firstElementChild&&firstChild

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  4. 在Caffe中实现模型融合

    模型融合 有的时候我们手头可能有了若干个已经训练好的模型,这些模型可能是同样的结构,也可能是不同的结构,训练模型的数据可能是同一批,也可能不同.无论是出于要通过ensemble提升性能的目的,还是要设 ...

  5. JavaScript学习总结(一)DOM文档对象模型

    一.文档(D) 一个网页运行在浏览器中,他就是一个文档对象. 二.对象(O) "对象"是一种自足的数据集合.与某个特定对象相关联的变量被称为这个对象的属性,只能通过某个对象调用的函 ...

  6. C++命名空间的解释 【转】

    使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突.在C++中,变量.函数和类都是大量存在的.如果没有命名空间,这些变量.函数.类的名称将都存在于全局命名空间中,会导致很多冲突.比如,如果我 ...

  7. NestedScrollView嵌套RecycleView 滑动 实现上滑隐藏 下滑显示头部效果

    废了好大的劲才弄好的,记下来 方便以后查看 public class MainActivity extends AppCompatActivity { private RecyclerView mRe ...

  8. 怎么看iOS human interface guidelines中的user control原则

    最近离开了老东家,整理整理思路,因为一直做的是微信公众号相关的产品对app的东西有一段时间没有做过了,所以又看了一遍iOS human interface guidelines,看到user cont ...

  9. golang环境

    Golang是谷歌开发的一款开源性语言,暂时比较方便的IDE有Inteillj Idea.LiteIDE.Eclipse(Golipse)等,使用起来比较方便的IDE:LiteIDE和Inteillj ...

  10. Mac Hadoop2.7.2的安装与配置

    这里介绍Hadoop 2.7.2在mac下的安装与配置. 安装及配置Hadoop 首先安装一下Hadoop $ brew install Hadoop 配置ssh免密码登录 用dsa密钥认证来生成一对 ...