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. 值得IT运维人员警示的“一件事儿”

    昨天,一个用户打来了紧急求助电话,并且发了邮件,弄得我当时紧张了一下,以为他们那里又出了什么乱子.用户在电话里说:应用系统性能很差,运行很慢,几近“卡死”的感觉,而且重启了多次应用和数据库服务器,最终 ...

  2. Android--广播BroadcastReceiver

    前言 Android四大组件,Activity.Service.ContentProvider.BroadcastReceiver,除了BroadcastReceiver之外,其他的在之前的博客中都有 ...

  3. HDOJ 1098 Ignatius's puzzle

    Problem Description Ignatius is poor at math,he falls across a puzzle problem,so he has no choice bu ...

  4. 2014-08-22 关于Response、Request等对象在cs文件中的使用

    今天是在吾索实习的第33天.已经有一段时间没写过博客了,今天突然想起个值得分享的东西,所以又华丽地回归了. 废话不多说了,直奔主题.我们会发现,在我们在cs文件中,直接使用Response.Reque ...

  5. visual studio 调试grunt

    原文地址: https://yoavniran.wordpress.com/2015/06/25/debug-grunt-tasks-in-visual-studio-2015/

  6. sicily 1119 Factstone Benchmark

    题意:求满足n! < 2^k,n的最大值! 解题:指数比较转换成对数比较,达到降幂! 其中: log (n!) = log(n)+log(n-1)+...+log(1); log(2^k) = ...

  7. IT码农哥放弃50万年薪:辞职卖咖喱凉皮(背后深藏功与名)_互联网的一些事

    IT码农哥放弃50万年薪:辞职卖咖喱凉皮(背后深藏功与名)_互联网的一些事 IT码农哥放弃50万年薪:辞职卖咖喱凉皮(背后深藏功与名)

  8. 转:有关Java泛型的类型擦除(type erasing)

    转载自:拈花微笑 自从Java 5引入泛型之后,Java与C++对于泛型不同的实现的优劣便一直是饭后的谈资.在我之前的很多training中,当讲到Java泛型时总是会和C++的实现比较,一般得出的结 ...

  9. 字体在Android View中的输出 drawText

    Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标.   public static class FontMetrics {               public flo ...

  10. PHP开发Android应用程序(转)

    第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行:第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件. 首先,在手机上安装两个apk包. 一个是SL4A(Scrip ...