phplib template

phplib有五大功能:将数据库驱动和对数据库操作完全分离;支持session;权限许可;模板;购物 车

说明:
1.第一个简单的模板页
first.html
模板中的{man}{author}{date}可以称为模板变量
源码说明:
first.php
<?php
include ('./php/template.inc'); //包含进模板类 template.inc
$tpl = new Template; //创建一个新模板
$tpl->set_file('main', 'first.html'); //把模板文件加载进来
$tpl->set_var('man', 'fuyatao'); // //给文件中的模板变量赋值
$tpl->set_var('author', 'fuyatao');
$tpl->parse('mains', 'main'); // //完成替换
$tpl->p('mains'); // //输出替换的结果
/*
$tpl->set_var(
array('man'=>'fuyatao', 'author'=>'fuyatao')
);
*/
?>
----
first.html
{man}
<br>
=================
<br>
{author}
----------------------------------------------------------------
2.复杂一点,取得数据库中的数据
second.php
<?php
include ('./php/template.inc');
$tpl = new Template;
$tpl->set_file('main', 'second.html');
$tpl->set_block('main', 'list', 'nlist');
$link=mysql_connect('localhost','root','root');
mysql_select_db('cheyigou',$link);
$result=mysql_query("select * from detail");
while ( $a = mysql_fetch_array($result))
{
$tpl->set_var('name', $a['name']);
$tpl->set_var('tall', $a['tall']);
$tpl->parse('nlist','list',true);
}

$tpl->parse('mains', 'main');
$tpl->p('mains', 'main');
?>
----
second.html
<HTML>
<HEAD>
<TITLE>second file </TITLE>
</HEAD> <BODY>
sfgsgsdgd

<UL>
<!-- BEGIN list -->
{name} gdhrh {tall}<br>
<!-- END list -->
</UL>

</BODY>
</HTML>
3.
模板嵌套

在写PHP页面的时候,我们会发现像页面头部分和尾部分,有好多页都要用,每页写一遍就太麻烦了,这些”公用代码”我们可以把它单独写在一个文件里,如果 这个公用部分要有所改动,无需再去改每一个页面,能减少非常多的工作量。用Template模板可以很方便的把一个页面随意插入另一个模板的任意地方。
新建3个文件third.htm、header.htm、footer.htm,内容分为如下
third.htm
<!– 这是页面头部 –>
{header}
<BODY>
下面是一个列表
<UL>
<!– BEGIN list –>
<li>{name} 的身高是 {tall}
<!– END list –>
</UL>
<!– 这是页脚部分 –>
{footer}
</BODY>
</HTML>

header.htm
<HTML>
<HEAD>
<TITLE> {title} </TITLE>
</HEAD>

footer.htm
<P>author &copy; fuyatao

下面我们开始我们的PHP程序:
<?php
include ('template.inc');
$tpl = new Template;
$tpl->set_file('main', 'third.htm');
$tpl->set_file('my_header', 'header.htm');
$tpl->set_file('my_footer', 'footer.htm');
$tpl->set_var('title', '这个是网页标题');
$tpl->set_block('main', 'list', 'nlist');

$link=mysql_connect('localhost','root','root');
mysql_select_db('cheyigou',$link);
mysql_query("set names gbk");
$result=mysql_query("select * from detail");
while ( $a = mysql_fetch_array($result))
{
$tpl->set_var('name',$a[name]);
$tpl->set_var('tall',$a[tall]);
$tpl->parse('nlist', 'list', true);
}
$tpl->parse('header', 'my_header');
$tpl->parse(footer, my_footer);
$tpl->parse('mains', 'main');
$tpl->p('mains');
?>

phplib template说明的更多相关文章

  1. php我们需要把握面试题目金鸡基础

    1.session与cookie差分? 答:session:储存用户訪问的全局唯一变量,存储在server上的php指定的文件夹中的(session_dir)的位置进行的存放 cookie:用来存储连 ...

  2. PHP技术知识点整理

    1.解释mvc (1)mvc即 模型model,视图view,控制器controller:是一种模型,是一种编程思想,就是把一个应用的输入.输出.数据处理分开,分解耦合(2)A..视图,数据采集和处理 ...

  3. 为.NET Core项目定义Item Template

    作为这个星球上最强大的IDE,Visual Studio不仅仅提供了很多原生的特性,更重要的是它是一个可定制的IDE,比如自定义Project Template和Item Template就是一个非常 ...

  4. jQuery.template.js 简单使用

    之前看了一篇文章<我们为什么要尝试前后端分离>,深有同感,并有了下面的评论: 我最近也和前端同事在讨论这个问题,比如有时候前端写好页面给后端了,然后后端把这些页面拆分成很多的 views, ...

  5. 2000条你应知的WPF小姿势 基础篇<69-73 WPF Freeze机制和Template>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,00 ...

  6. tornado template

    若果使用Tornado进行web开发可能会用到模板功能,页面继承,嵌套... 多页应用模板的处理多半依赖后端(SPA就可以动态加载局部视图),就算是RESTfull的API设计,也不妨碍同时提供部分模 ...

  7. 设计模式(九): 从醋溜土豆丝和清炒苦瓜中来学习"模板方法模式"(Template Method Pattern)

    今天是五.四青年节,祝大家节日快乐.看着今天这标题就有食欲,夏天到了,醋溜土豆丝和清炒苦瓜适合夏天吃,好吃不上火.这两道菜大部分人都应该吃过,特别是醋溜土豆丝,作为“鲁菜”的代表作之一更是为大众所熟知 ...

  8. C++泛型编程:template模板

    泛型编程就是以独立于任何特定类型的方式编写代码,而模板是C++泛型编程的基础. 所谓template,是针对“一个或多个尚未明确的类型”所编写的函数或类. 使用template时,可以显示的或隐示的将 ...

  9. 新手入门Underscore.js 中文(template)

    Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了javaScript的编程.MVC框架Backbone.js就将这个库作为自 ...

随机推荐

  1. ISO14443协议中,卡片对RATS,PPS,IBLOCK的处理约定

    这几天总是看到有人因为这几条规则没处理好,结果检测时通不过,其实看看最新版的ISO14443协议就明白了. 协议中明确要求几条: 1.在激活状态后,如果收到一个无错的RATS命令后,卡片返回atr,此 ...

  2. BZOJ 1023 [SCOI2009]生日快乐

    1024: [SCOI2009]生日快乐 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1729  Solved: 1219[Submit][Statu ...

  3. -_-#【Better JS Code】插入迭代值

    +function() { var i = 0 var values = ['xiaoming', 'xiaohong'] var name = values[i] i++ console.log(n ...

  4. UVa 11292 - Dragon of Loowater(排序贪心)

    Once upon a time, in the Kingdom of Loowater, a minor nuisance turned into a major problem.The shore ...

  5. Java:Date、Calendar、Timestamp的区别、相互转换与使用【转载】

    1 Java.util.Date 包含年.月.日.时.分.秒信息 包含年.月.日信息. 继承自java.util.Date.在数据库相关操作中使用,如rs.getDate,ps.setDate等.rs ...

  6. c宏的MAX函数

    今天从香山上面回来累的跟傻逼一样,回来问了一下胡总的阿里面试的问题.然后其中有一个是宏写max函数.胡总说不好写,然后我就去洗澡了. 洗澡的时候感觉不对啊,回来写了一个: #define MAX(a, ...

  7. Aggregating tests in suites

    我们可以将来自不同类的test组成一个test suite.在JUnit 3.8.x我们使用 static Test suite()方法,但是在JUnit4我们使用在类前面加上注释 @RunWith( ...

  8. G - Island Transport - hdu 4280(最大流)

    题意:有N个岛屿,M条路线,每条路都连接两个岛屿,并且每条路都有一个最大承载人数,现在想知道从最西边的岛到最东面的岛最多能有多少人过去(最西面和最东面的岛屿只有一个). 分析:可以比较明显的看出来是一 ...

  9. 数据库 —— mySQL 的安装

    [转载Link]MySQL-5.6.24免安装版配置方法,有需要的朋友可以参考下. 1. 下载MySQL Community Server 5.6.24 2. 解压MySQL压缩包 将以下载的MySQ ...

  10. 解决从VIM复制出来的代码格式错乱或对齐的问题

    这篇文适合给使用VIM的小鸟看,不太适合老鸟 之前有一个问题就是只要是从VIM复制出来的代码,无论是放到CSDN还是GITHUB上面都会变得非常难看. 在VIM里面你看着以为对齐了,实际没有.先说一下 ...