一般來說,模板可以讓你完全地把你的php**從html中分離出來,這樣使得html的圖形
設計者們非常高興,而且可以避免他們搞丟你的寶貴設計。
它不是fasttemplates
那麼,我們真的需要在phpbuilder上關於模板的另一篇文章嗎?好,是的,因為有不止一種的方法用php來實現模板。sascha的文章講述了如何使用fasttemplates,但是php基本類庫("phplib")有它自已的模板實
現。 它們有什麼不同呢?fasttemplates最初是從乙個perl庫轉變來的。fasttemplates對perl
程式工作的很好,但是對php不太理想。kristian koehntopp從頭編寫了phplib模板,作為乙個純的php庫,它更好地提供了php的優勢。好處之一是kristian的設計使用了preg_replace()來分析模板,據說比fasttemplate 中使用的ereg_replace()要快。phplib模板的另乙個好處是它允許動態的塊實現巢狀,不象fasttemplates。
兩個庫都有著非常相似的特性和能力,但是如果你已經使用了fasttemplates,並且你想學習使用phplib模板,你應該把你所知道的關於fasttemplates 的一切都忘掉。他們的特性可能是相似的,但是phplib模板所做的每件事比fasttemplates只有一點點不同。
使用phplib模板
讓我們從乙個簡單的例子開始。我們假設在/home/mydir/mytemplates/下面有乙個名為mytemplate的模板,它有一些文字,
內容可能是:
祝賀!你贏了一輛honda prelude!
注意""是用大括號包圍的。大括號指明some_color是乙個模板變數。我們可能想寫這樣乙個指令碼,它可以裝入模板,在模板變數的地方插入php變數$my_color的值,然後輸出新的文字。如果$my_color碰巧被設為"藍色",最後的輸出可能是:
祝賀!你贏了一輛新藍色honda prelude!
下面是上述結果的php指令碼:
<?php
include "template.inc";
$my_color = "blue";
// 將在後面使用
$t = new template("/home/mydir/mytemplates/");
// 建立乙個名為 $t 的模板物件
$t->set_file("myfilehandle","mytemplate.ihtml");
// 設定 myfilehandle = 我們的模板檔案
$t->set_var("some_color",$my_color);
// 設定模板變數 some_color = $my_color值
$t->parse("myoutput","myfilehandle");
// 設定模板變數 myoutput = 分析後的檔案
$t->p("myoutput");
// 輸出 myoutput 的值(我們的分析後的資料)
?>
第一行是乙個include 指令,用來提供phplib模板功能。當然phplib做的比模板要多,但是如果你只想使用模板特性,只需要包括tmplate.inc (template.inc是來自於phplib的檔案之一)。phplib模板使用物件導向程式設計,所以下一件事情就是建立乙個模板物件。**
<?php $t = new template (
"/home/mydir/mytemplates/" ); ?>
建立乙個新的模板物件$t。這個$t物件是乙個控制代碼,將用來處理所有的模板函式,用於php指令碼中其它的**。如果你願意,你可能建立其它的模板物件(每乙個都有著自已的模板變數名字空間),但是乙個就夠用了。在模板的構造函式呼叫中的路徑("/home/mydir/mytemplates/")用來設定你的模板所在位置的根目錄,但是如果你沒有設它,它將預設與你的php指令碼所在目錄一樣。
然後我們呼叫set_file()來定義乙個名為"myfilehandle"的控制代碼來與mytemplate.ihtml鏈結(在parse()被呼叫之前,模板不會真正地裝入)。順便說一下,phplib模板的模板檔名的字尾為.ihtml 是一種習慣,你可以使用.html,.tpl,或其它的字尾。然後呼叫set_var()來設定模板變數some_color為$my_color的值(值為"藍色"),意味著所有在模板中出現的地方都將被詞"藍色"所替換,一旦我們呼叫了parse()。接著我們呼叫parse(),它會裝入myfilehandle(mytemplate.ihtml)進行分析,並且替換所有模板變數("")為模板變數的值,分析的結果放在myoutput中。任何結果都不會輸出到web伺服器上,除非 p("myoutput")被呼叫,它將輸出最後分析過的文字。
SIGCLD處理方式
apue上sigcld語義寫的有點不清楚,到底我們的系統是如何來處理sigcld訊號呢?1.sig dfl 預設的處理方式是不理會這個訊號,但是也不會丟棄子進行狀態,所以如果不用wait,waitpid 對其子進行進行狀態資訊 會產生殭屍程序。2.sig ign 忽略的處理方式,這個方式和預設的忽略...
遇事處理方式
事,慢慢地說 大事,清楚地說 小事,幽默地說 沒把握的事,謹慎地說 沒發生的事,不要胡說 做不到的事,別亂說 傷害人的事,不能說 討厭的事,對事不對人地說 開心的事,看場合說 傷心的事,不要見人就說 別人的事,小心地說 自己的事,聽聽自己的心怎麼說 現在的事,做了再說 未來的事,未來再說 知人不必言...
故障處理方式
排除故障方法 1 自頂而下法 2 自底而上法 3 分而治之法 4 跟蹤流量路徑法 5 對比配置法 6 元件替換法 大多數採用的工具 ping 測試鏈路連通性 traceroute 測試路由可達性,是否缺少路由 telnet 測試服務埠,是否被拒絕 icmp internet 控制訊息協議 icmp被...