主題說明: Warning: Invalid content of \{\} in class.FastTemplate.php3...?!
更新日期: 04/05/2001
適用書籍: All
內文:
許多讀者在用了 FastTemplate
之後出現類似這樣的錯誤訊息或是其它奇怪的錯誤:
Warning: Invalid content of \{\} in class.FastTemplate.php3 on line 213
也有時候會出現一堆奇怪的字元、小數點等。據悉應該是版本的問題所造成的,建議有這個問題的讀者更新
PHP 至 4.0.2 以上,並換上 Jollen 修改過的 FastTemplate 版本。
下載:FastTemplate 1.1.0 (Jollen 修改版, 請另存新檔!)
這麼一來應該可以解決大家的問題了。同時這個版本 Jollen
做了兩個修改,而且用了一陣子了,好用喔!
1. prase() 新增 output to file
將 $tpl->FastPrint("BODY") 改成如 $tpl->FastPrint("BODY",
"index.html") 可以將樣板存成檔案 index.html。
2. 新增 append to head (原來只有 append to rear)
分析動態樣板時,將 $tpl->parse(ROWS, ".row") 改成如 $tpl->parse(ROWS,
":row") 可以將內文區塊加到動態樣板的開頭,原本 FastTemplate
會將內容一直附加到動態樣板區塊的後面,因為 Jollen
有這個需要,所以改用 ':' 可以將新內容一直加到動態樣板的前面。
如果您還是有上述問題,請檢查程式是否有誤。底下是樣板化設計部份的參考範例程式碼,詳細內容請翻閱
F8523 「PHP4 網站實作」(89, 旗標) 一書。
程式:
include("/home/httpd/html/FastTemplate/class.FastTemplate.php3");
//產生 FastTemplate 物件,指定樣板「目錄」
$tpl = new FastTemplate("/home/httpd/html/board/templates");
//定義 Template 名稱 (檔名) & 動態樣板名稱
$tpl->define(array(main => "showpost.tpl"));
$tpl->define_dynamic("row", "main");
while (...) {
$tpl->assign(MESSAGE, $message);
$tpl->assign(EMOTION, $emotion_pic);
//分析動態樣板區塊
$tpl->parse(ROWS, ".row");
}
$tpl->parse(BODY, "main");
$tpl->FastPrint("BODY");
樣板 (含動態樣板區塊) 範例:
<!-- NAME: showpost.tpl -->
<!-- BEGIN DYNAMIC BLOCK: row -->
<table border="1" cellPadding="1" cellSpacing="1"
width="98%">
<tr>
<td align="right" bgcolor="#ddf0ff"
width="20%"><font size="+0">文章主題:</font></td>
<td bgcolor="#ffffff" width="80%">SUBJECT</td>
</tr>
<tr>
<td align="right" bgColor="#ddf0ff" noWrap><font
size="+0">發表時間:</font></td>
<td bgColor="#ffffff">POSTDATE</td>
</tr>
<tr>
<td align="right" bgColor="#ddf0ff" noWrap
vAlign="top"><font size="+0">發表內容:<br>
EMOTION</font></td>
<td bgColor="#ffffff" vAlign="top">MESSAGE</td>
</tr>
</table>
<br>
<!-- END DYNAMIC BLOCK: row -->
<!-- END: showpost.tpl -->
紅色是動態樣板定義方法,藍色是樣板變數。
|