电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

在PHP中如何使用模板

瀏覽:112日期:2024-01-09 11:12:06

是否你面臨著創(chuàng)建由一個編程人員(可能就是你)和一個設(shè)計人員同時進行創(chuàng)作的網(wǎng)站?你不知道如何使工作對你倆來說變得容易嗎?我來給你答案:使用FastTemplate來使你的站點更容易定制!

好了,你可能想知道為什么你要使用FastTemplates。

·可以在幾秒鐘改變你的整個站點的外觀·抽象程序設(shè)計,沒有垃圾HTML代碼·設(shè)計人員不需要關(guān)心全部的'模糊'代碼·令人驚訝地快·更容易重用舊的模版(對普通的表單而說)

FastTemplate源于一個有同樣名稱的Perl軟件包(可以在CPAN上找到)。你可以下載PHP 的版本從它的主頁(本站下載地址為:http://www.phpe.net/downloads/1.shtml)。你只需要其中的一個類的文件(class.FastTemplate.php)。

讓我首先解釋一下在使用模板生成一個頁面與簡單地通過echo或print 將頁面輸出之間有什么不同吧。簡單地使用echo/print的方法很適合編寫短的腳本,但是不能幫助你更好的組織和定制。模板在另一方面給了你創(chuàng)建多國語言站點的能力,只是通過改動一個參數(shù)。他們可以促使你更關(guān)心你要做的。

在開始編碼之前不要害怕思考。它可能會花費一些時間,但是這些花費會隨著項目的發(fā)展對你有所回報。

那么,如何應(yīng)用FastTemplate呢?首先你需要先進行一個簡單地調(diào)用:

<?php $tpl=new FastTemplate ('path');?>傳遞給它一個路徑,是所有你的模板文件存放的目錄。它返回一個對象,你可以用它進行參數(shù)賦值,生成頁面等等。

FastTemplate是基于這樣一種假設(shè):一個很大的頁面是由很多小的部分組成的。每一個部分有一個唯一的名字。最小的部分是賦值給這樣有著唯一名字的一段正常的文本字符串。這個可以通過 <?php$tpl->assign(NAME, 'text');?>來完成?,F(xiàn)在,如果你的一個模板包含{NAME},F(xiàn)astTemplate 就知道你的意圖了。

另外,F(xiàn)astTemplate需要知道你想如何調(diào)用你的模板。你需要通過傳遞一個相關(guān)數(shù)組(associativearray)給 <?php $tpl->define(); ?>來給它一個提示。<?php$tpl->define(array(foo => 'foo.tpl',bar => 'bar.tpl'));?>這些賦值將分別給foo和bar以不同的文件(名為foo.tpl和bar.tpl)。

現(xiàn)在你想讓FastTemplate替換在模板foo中的所有{MACROS}為相應(yīng)的值。通過發(fā)出命令

<?php$tpl->parse(PAGECONTENT, 'foo');?>來實現(xiàn)。 這個命令將把模板'foo'的內(nèi)容賦給PAGECONTENT。 當(dāng)然,我們還沒有做完,因為模板bar中為主要的頁面定義,F(xiàn)astTemplate需要替換其中的{PAGECONTENT}宏。我們也需要給PAGETITLE賦值,如下所做: <?php$tpl->assign(PAGETITLE, 'FooBar test');$tpl->parse(MAIN, 'bar');?>容易吧,不是嗎?我們現(xiàn)在只需要把它輸出: <?php$tpl->FastPrint(MAIN);?>下面三個文件顯示了實際練習(xí)中的更多的細節(jié)描述。我不知道在現(xiàn)實生活了離了這個技術(shù)應(yīng)如何生活 --你的設(shè)計者會高興,你的老板會微笑,因為你可以在更短的時間內(nèi)做更多的事情。

bar.tpl <!-- bar.tpl --><HTML><HEAD><TITLE>Feature world - {PAGETITLE}</TITLE></HEAD><BODY BGCOLOR=BLACK TEXT=WHITE><H1>{PAGETITLE}</H1>{PAGECONTENT}</BODY></HTML>foo.tpl <!-- foo.tpl -->很明顯示什么都沒做。請看{NAME}.demo.php3 <?phpinclude 'class.FastTemplate.php3';

$tpl = new FastTemplate( '.');$tpl->define(array(foo => 'foo.tpl', bar => 'bar.tpl'));

$tpl->assign(NAME, 'me');$tpl->assign(PAGETITLE, 'Welcome!');

$tpl->parse(PAGECONTENT, 'foo');$tpl->parse(MAIN, 'bar');

$tpl->FastPrint(MAIN);?>

創(chuàng)建整個表格我也寫了一個短的例子,用來演示如何通過單行模板來生成整個表格。它很有效,因為你仍然不需要直接修改HTML文檔。

我們增加一個模板的內(nèi)容到一個已經(jīng)定義過的唯一命名的后面來創(chuàng)建HTML表格。這個可以通過在調(diào)用$tpl->parse()時,在模板名前加上一個'.'來實現(xiàn)。 <?php// 將模板foo的內(nèi)容賦給TPL1$tpl->parse(TPL1, 'foo');

// 在TPL1后附上模板bar的內(nèi)容$tpl->parse(TPL1, '.bar');?>

page.tpl

<HTML><HEAD><TITLE>Feature world - {PAGE_TITLE}</TITLE></HEAD><BODY BGCOLOR=BLACK TEXT=WHITE><H1>{PAGE_TITLE}</H1>{PAGE_CONTENT}</BODY></HTML>

table.tpl

<TABLE><TR> <TH>name</TH> <TH>size</TH> </TR>{TABLE_ROWS}</TABLE>

table_row.tpl

<TR><TD>{FILENAME}</TD><TD>{FILESIZE}</TD></TR>

yad.php3

<?phpinclude 'class.FastTemplate.php3';

function InitializeTemplates() {global $tpl;

$tpl = new FastTemplate( '.');$tpl->define( array( page => 'page.tpl',table => 'table.tpl',table_row => 'table_row.tpl' ) );}

function ReadCurrentDirectory() {global $tpl;

$handle = opendir( '.');while($filename = readdir($handle)) {$tpl->assign(FILENAME, $filename);$tpl->assign(FILESIZE, filesize($filename));$tpl->parse(TABLE_ROWS, '.table_row');}closedir($handle);$tpl->parse(PAGE_CONTENT, 'table');}

function PrintPage($title) {global $tpl;

$tpl->assign(PAGE_TITLE, $title);$tpl->parse(FINAL, 'page');$tpl->FastPrint(FINAL);}

InitializeTemplates();ReadCurrentDirectory();Printpage( 'Yet Another Demo');?>

速度討論

'Ok,' 你可能會說,'一切都太好了。但是它不會影響我的網(wǎng)站的速度嗎?'

不,你的網(wǎng)站可能變得更快。一個簡單的原因就是:因為你作為一個編程人員關(guān)心的是設(shè)計你的應(yīng)用和編寫代碼,你的代碼將會更有效率,處理相同的任務(wù)更容易和更快速。所以,你可能會在上面列出的為什么考慮使用FastTemplate在你的項目中的原因列表中增加另一條理由。

如果你只是想轉(zhuǎn)換一個已經(jīng)存在的web站點,性能上的成功可能不會被注意到。我建議在PHP中使用正則表達式緩沖,它將對這種情況有所幫助。因為FastTemplate對每一個宏都使用正則表達式,每一個正則表達式將被只編譯一次并且速度上的影響可以忽略不計。

標簽: PHP
主站蜘蛛池模板: 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 工业淬火油烟净化器,北京油烟净化器厂家,热处理油烟净化器-北京众鑫百科 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 沈飞防静电地板__机房地板-深圳市沈飞防静电设备有限公司 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 食安观察网| 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 屏蔽泵厂家,化工屏蔽泵_维修-淄博泵业| 警方提醒:赣州约炮论坛真的安全吗?2025年新手必看的网络交友防坑指南 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 真空包装机-诸城市坤泰食品机械有限公司| 北京开源多邦科技发展有限公司官网 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 |