php中模板
❶ php模板與框架區別問題
smarty主要是模板引擎,功能是將MVC中view層的php和html代碼分離,並不算框架,比如將<?php echo $var;?>替換為<!--{$var}-->,以便讓美工可以更好的閱讀html布局,不過老實說在這點上有點脫褲子放P的感覺。現在一般主流的框架都直接用php來當模板語言了,不太建議使用smarty,當然這東西比較簡單,隨便看下語法也就夠了
而現在php主流的框架一般都是MVC的,同時,會提供比較豐富的功能組件,比如許可權控制,比如將smarty也內置進來,等等。當然,個人認為對於團隊來說,框架最主要的功能,就是統一規范上,遵循一定得規范的話,對整個項目的開發及日後的維護相當關鍵。zend framework、cakephp、symfony國外大框架中比較好的。zend framework是官方框架,想學的話建議直接zend吧,用的人應該也是最多的。國內的thinkphp、qeephp也相當不錯,畢竟是國內的,學習起來也很方便
❷ PHP模板是什麼
平常我們做一個互動式網站,一定會關注兩個主要的問題,就是美工和程序。這也是一個網站在建設中拋開其內容之後最關鍵的要素。
通常有兩種方式來協調美工和程序之間的關系:
1.先做好美工頁面,然後由程序員直接在美工頁面的Html文件中嵌入ASP、jsp、PHP等程序代碼。
2.美工和程序同時進行,但這時因為沒有頁面框架,程序只能做出一些關鍵代碼,雙方完成後再進行一次美工頁面和程序代碼的嵌入合成。
在實際的網站建設過程中,由於人員、進度等環境的限制,大家通常會混合地使用上面兩種協調方式。然而這兩種方法都有不足之處:
1. 效率不高。兩者協調不好可能產生等待、重復代碼調試步驟等現象;
2. 調試不暢。由於程序代碼最終需要嵌入在HTML頁面中,代碼的嵌入、調試、糾錯都比較繁瑣;
3. 維護不便。一旦美工設計需要修改,如網站改版,那麼所有程序和HTML代碼混合頁面都需要重寫;
如果你正在使用PHP程序建設網站,那麼PHP的模板技術會比較圓滿地解決上述問題。
那麼什麼是PHP的模板技術?PHP模板即PHPlib的Template技術,是PHPLIB程序庫中的一個主要模塊之一,發展自Perl的Template。而PHPLIB則是在PHP上的一個擴展,提供了很多類庫,能夠方便地實現一些基本功能如用戶認證,資料庫封裝等。
現在PHP模板技術很多,不過建議你學習smarty,畢竟是官方的東西!
smarty學習很簡單的,你去下載一個smarty手冊,對照著學,基本上二天就可以學會了!
❸ 常用的PHP模板有哪些
一般都是 smarty了
-
你看到的那些一般都是別人自己寫的嫫版。smarty 比較慢,所以很多人都自己寫,小兒實用。
❹ php 的框架與模板
樓主的認知不對哦,以下為樓主解惑:
框架:在php源碼的基礎上,開發者將常用的功能進行二次封裝形成的代碼集合,其本身往往不具備任何可用的功能,其目的僅僅是使開發人員可以基於框架更快的開發出符合要求的應用。例如,不使用框架開發一個用戶管理功能可能需要5天,使用框架可以將這個時間縮短到2天。實際上,對於任何一個項目,訪問控制、資料庫訪問、文件處理等功能都是必備的,框架就是將這些常用功能進行了更易用的封裝,避免開發人員在通用組件上重復開發,浪費時間。
模板:為了將PHP內容和html內容更好的分離為目的產生的一種應用,其主要目的是為了網頁製作人員可以不去學習PHP就能修改頁面的內容(可惜不學PHP還要學smarty,因此我個人並不覺得模板真的能帶來什麼實際的好處)
另外,如dede,DZ,PHPCMS等是基於PHP的產品,本身已經具備了大量的功能,安裝之後就能使用,當然,因為需求的不同可能需要在該產品的基礎上進行二次開發。
綜述,模板沒有太大的價值,完全可以在非用不可的時候再去學習,對於PHP開發人員來說,smarty可以立刻上手。它可以(也只能)被框架或PHP產品使用。框架是必須掌握的,定製性很強的項目必然都是基於框架開發的。PHP產品,如果你要開發的項目和某個PHP產品的功能達到80%以上的契合,那麼應該考慮基於該產品進行開發。
一些網站提供簡單的博客,留言板等的源碼,不基於框架的小項目實際上只能稱為練習,只有參考價值。
註:不是說不使用框架的項目就不算項目,事實上如果一個項目如果沒有使用某某框架,其項目的一部分代碼也必然的會具有框架的特徵,即自定義框架也是框架。
❺ php中的模板標簽是自己定義的還是系統自帶的
php本身沒有模板不模板是說法!
所謂模板,是一些開發者自己自定的一些標簽,然後把php讀取並編譯這些標簽的代碼封裝成一個類!
如果你自己會寫,那就自己寫一個,如果不會,那就網路一下php模板引擎
❻ PHP模板怎麼用
php網站模板使用方法如下:
邏輯和現實分離,顯示全部用靜態頁面的html代碼。
把要顯示的變數用一個特定的字元串放進去(一般都是<!--{$str}-->這種形式)。當然,模板文件不一定非要是html後綴,你可以用任何後綴。
邏輯層處理完業務邏輯就要包含模板文件顯示了。
包含的思想就是用fopen打開文件,把文件內容讀到一個字元串變數里。
然後用正則表達式把<!--{$str}-->替換成$str,最後用echo輸出就行了。
❼ php中,有哪些模板
為了找到一個好的模板引擎,我在互聯網上進行搜索,目前已經整理出了以下名單:
Smarty
Smarty的特點是將模板編譯成PHP腳本,然後執行這些腳本。很快,非常靈活。
是一個模板類,一般也簡稱為模板。Smarty裡面有專門的模板引擎。模板的主要功能就是邏輯與顯示的分離,也就是PHP和HTML的分離。
Heyes Template Class
一個非常容易使用,但功能強大並且快速的模板引擎,它幫助你把頁面布局和設計從代碼中分離。
FastTemplate
一個簡單的變數插值模板類,它分析你的模板,把變數的值從HTML代碼中分離處理。
ShellPage
一個簡單易用的類,可以讓你的整個網站布局基於模板文件,修改模板就能改變整個站點。
STP Simple Template Parser
一個簡單、輕量級並且易於使用的模板分析類。它可以從多個模板中組裝一個頁面,把結果頁面輸出到瀏覽器或者文件系統。
OO Template Class
一個你可以用在自己程序中的面向兌現的模板類。
SimpleTemplate
一個可以創建和結構化網站的模板引擎。它可以解析和編譯模板。
bTemplate
短小但是快速的模板類,允許你把PHP邏輯代碼從HTML修飾代碼中分離。
Savant
一個強大且輕量級的PEAR兼容模板系統。它是非編譯型的,使用PHP語言本身做為它的模板語言。
ETS - easy template system
可以使用完全相同數據重組模板的模板系統。
EasyTemplatePHP
適用於你的站點的一個簡單但是強大的模板系統。
vlibTemplate
一個快速、全能的模板系統,它包含一個緩存和調試類。
AvanTemplate
多位元組安全的模板引擎,佔用很少系統資源。它支持變數替換,內容塊可以設置顯示或隱藏。
Grafx Software』s Fast Template
一個修改版本的Fast Template系統,它包括緩存功能,調試控制台以及沉默去除為賦值塊。
TemplatePower
一個快速、簡單、功能強大的模板類。主要功能有嵌套的動態塊支持,塊/文件包含支持以及顯示/隱藏未賦值的變數。
TagTemplate
這個庫的功能被設計來使用模板文件,同時允許你從HTML文件檢索信息。
htmltmpl: templating engine
一個適用於Python和PHP的模板引擎。它面向希望在項目中分離代碼和設計的web應用開發人員。
PHP Class for Parsing Dreamweaver templates
一個分析Dreamweaver模板的簡單類,被用於Gallery 2 和WordPress的自定義模塊中。
MiniTemplator (Template Engine)
針對HTML文件的一個緊湊型模板引擎。對於模板變數和塊定義它具有簡單的語法。其中塊可以嵌套。
Layout Solution
簡化網站開發和維護。它擁有常用的變數和頁面元素使你不需要重復做頁面布局工作。
Cached Fast Template
它已經納入FastTemplate,允許你緩存模板文件,甚至可以在分離的塊內容上緩存不同的規格。
TinyButStrong
一個支持MySQL, Odbc, Sql-Server和ADODB的模板引擎。它包含7個方法和兩個屬性。
Brian Lozier』s php based template engine
只有2K大小,非常快並且是面向對象設計。
WACT
一個從設計中分離代碼的模板引擎。
PHPTAL
一個PHP下面的XML/XHTML模板庫。
希望可以幫到你!
❽ 誰能簡單概述下php中的模板和框架
模板我接到的就smarty,但是smarty主要是模板引擎,功能是將MVC中view層的php和html代碼分離,並不算框架,比如將<?php echo $var;?>替換為<!--{$var}-->,以便讓美工可以更好的閱讀html布局,而現在php主流的框架一般都是MVC的,同時,會提供比較豐富的功能組件,比如許可權控制,比如將smarty也內置進來,我自己用過的有yii.thinkphp,zend,這些都是框架,框架開始有自己的特定的規則了,就想yii里的變數是要實現定義一樣,不然會報錯,而且框架的效率高,而且封裝了很多函數,要精通的話是需要花時間的
❾ 在php中如調用一個或幾個php模板文件
如何應用FastTemplate呢?首先你需要先進行一個簡單地調用:
<?php $tpl=new FastTemplate ("path"); ?>
傳遞給它一個路徑,是所有你的模板文件存放的目錄。它返回一個對象,你可以用它進行參
數賦值,生成頁面等等。
FastTemplate是基於這樣一種假設:一個很大的頁面是由很多小的部分組成的。每一個部分有一個唯一
的名字。最小的部分是賦值給這樣有著唯一名字的一段正常的文本字元串。這個可以通過
<?php
$tpl->assign(NAME, "text");
?>
來完成。現在,如果你的一個模板包含{NAME},FastTemplate 就知道你
的意圖了。
另外,FastTemplate需要知道你想如何調用你的模板。你需要通過傳遞一個相關數組(associative
array)給 <?php $tpl->define(); ?>
來給它一個提示。
以下為引用的內容:
<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>
這些賦值將分別給foo和bar以不同的文件(名為foo.tpl和bar.tpl)。
現在你想讓FastTemplate替換在模板foo中的所有{MACROS}為相應的值。通過發出命令
以下為引用的內容:
<?php
$tpl->parse(PAGECONTENT, "foo");
?>
來實現。 這個命令將把模板"foo"的內容賦給PAGECONTENT。 當然,我們還沒有做完,因為模板bar中為主要的頁面定義,FastTemplate需要替換其中的
{PAGECONTENT}宏。我們也需要給PAGETITLE賦值,如下所做:
以下為引用的內容:
<?php
$tpl->assign(PAGETITLE, "FooBar test");
$tpl->parse(MAIN, "bar");
?>
容易吧,不是嗎?我們現在只需要把它輸出: <?php
$tpl->FastPrint(MAIN);
?>
下面三個文件顯示了實際練習中的更多的細節描述。我不知道在現實生活了離了這個技術應如何生活 --
你的設計者會高興,你的老闆會微笑,因為你可以在更短的時間內做更多的事情。
以下為引用的內容:
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
<?php
include "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);
?>
創建整個表格
我也寫了一個短的例子,用來演示如何通過單行模板來生成整個表格。它很有效,因為你仍然不需要直
接修改HTML文檔。
我們增加一個模板的內容到一個已經定義過的唯一命名的後面來創建HTML表格。這個可以通過在調用
$tpl->parse()時,在模板名前加上一個"."來實現。 <?php
// 將模板foo的內容賦給TPL1
$tpl->parse(TPL1, "foo");
// 在TPL1後附上模板bar的內容
$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
以下為引用的內容:
<?php
include "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");
?>