日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

PHP技巧:詳解phplib模板使用過程及運行原理_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP技巧:使用APC緩存優(yōu)化PHP程序
Alternative PHP Cache(APC)是 PHP 的一個免費公開的優(yōu)化代碼緩存。它用來提供免費,公開并且強健的架構(gòu)來緩存和優(yōu)化 PHP 的中間代碼。 在 Windows 下,APC 要求有 c:tmp 目錄,并且該目錄

index.htm文件內(nèi)容:

以下為引用的內(nèi)容:

<html>
<head>
<body>
<!-- BEGIN RowSort -->
{SortList}<br>
<!-- END RowSort -->
</body>
</head>
</html>

index.php內(nèi)容:

<?
$t->set_file ("Index", "index.htm");
$t->set_block("Index", "RowSort", "RowsSort");
..............................................
.................$list_sort...................
$t->set_var("SortList", $list_sort);
$t->parse("RowsSort", "RowSort", true);
..............................................
..............................................
$t->parse("OUT", "Index");
$t->p("OUT");
?>

詳細分析過程:

一、$t->set_file ("Index", "index.htm"); $this->file[index] = index.htm

二、$t->set_block("Index", "RowSort", "RowsSort");

1、載入index文件index.htm內(nèi)容并賦給變量$this->varvals[index]

2、$str = $this->varvals[index]獲取模板文件內(nèi)容

3、用preg_match_all函數(shù)來匹配模板文件中對應(yīng)的block(RowSort)里的內(nèi)容,并存儲到$m[1][0]中

4、lock(RowSort)里的內(nèi)容(包括頭和尾)替換為{RowSort}

5、變量$this->varvals[RowSort] = $m[1][0] , $this->varkeys[RowSort] = /{RowSort}/

6、變量$this->varvals[index] = $str(內(nèi)容已發(fā)生改變,見第4步) , $this->varkeys[index] = /{index}/

三、$t->set_var("SortList", $list_sort);

設(shè)置$this->varvals[SortList] = $list_sort

設(shè)置$this->varkeys[SortList] = /{SortList}/

四、$t->parse("RowsSort", "RowSort", true);(此操作根據(jù)sort大小重復(fù)進行)

1、利用subst函數(shù)把$this->varvals數(shù)組中的所有變量值對其中可能含有的特殊字符\和$進行處理(\和$分別替換為\\和\$,這樣可以確保下一步的preg_replace不出現(xiàn)意外),并賦給$varvals_quoted數(shù)組

2、$str = $this->varvals[RowSort]

3、我們可以看出此時$str中含有一個{SortList},而由三:$this->varkeys[SortList] = /{SortList}/,$this->varvals[SortList] = $list_sort

4、可見經(jīng)過preg_replace我們得到的$str是已經(jīng)解析了PHP模板變量{SortList}之后的內(nèi)容了,返回$str

5、給$this->varvals[RowSort]進行延續(xù)賦值 //這里有個問題大家可能會考慮到就是顯示的時候最開始那個{RowSort}未被解析,不用擔(dān)心,phplib有finish函數(shù)會對它根據(jù)你的要求進行處理

五、$t->parse("OUT", "Index");

1、可以看出,這時$this->varvals[index]中有一個PHP模板變量要進行解析,即{RowSort}

2、而在前面幾步中,我們已經(jīng)把$this->varvals[RowSort]的內(nèi)容解析好

3、這樣以來,我們把全部PHP模板變量均已解析后的內(nèi)容賦給變量$this->varvals[OUT]

六、$t->p["OUT"];

顯然phplib中p函數(shù)即為輸出函數(shù),我們直接把$this->varvals[OUT]輸出即可

//這里要注意的是輸出之前有個phplib自動進行的動作,就是對未被解析的PHP模板變量根據(jù)你的要求進行處理。

分享:PHP技巧:優(yōu)化動態(tài)網(wǎng)頁技術(shù)PHP程序的12條技巧
1、If a method can be static, declare it static. Speed improvement is by a factor of 4。 1、如果一個函數(shù)可以聲明為靜態(tài)的,那么就用靜態(tài)的,速度是改進的一個因素4。 2、# Avoid ma

來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
相關(guān)PHP教程