• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 87  文章 - 279  trackbacks - 0
            <2006年8月>
            303112345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            潛心看書研究!

            常用鏈接

            留言簿(19)

            隨筆分類(81)

            文章分類(89)

            相冊

            ACM OJ

            My friends

            搜索

            •  

            積分與排名

            • 積分 - 216569
            • 排名 - 117

            最新評論

            閱讀排行榜

            評論排行榜

              轉載->數字中國  
            phplib模板體系介紹

            boeiBlog是一套支持多模板的單用戶版網絡日志程序

            其模板引擎采用的是phplib7.4版。此版本修正了以前的大部分bug,文件位于class/template.class.php,有興趣的朋友可以打開看看。
            這是一套解析型的模板,而不是smarty之類的編譯型。用這套模板的好處是模板頁面可以很簡單,但程序因為要替換模板中的標簽,因此比較慢。
            好在此系統是為個人用戶準備的。效率是放在第二位,易用性是放在首位的,因此仍然采用的是phplib的模板。

            語法介紹:
            phplib中常用的方法有set_file,set_block,set_var,parse,ppasre,p,get等。

            聲明:由于本系統采用的是phplib,如果頁面中有大括號對,這將會替換成空白,所以在寫此文章時,用"[[","]]"來替代大括號。大家在用的時候是用大括號便是,此處僅為寫文章方便而作此約定。

            set_file:是用來引入模板文件。
            用法:

             CODE:
            $t->set_file("show_main","main.htm");

            $t->set_file(array(
             "show_header"=>"header.htm",
             "show_main"=>"main.htm"
            ));
            set_block:用來聲明一個區塊
            用法:
            $t->set_block("show_main","rowlist","RL");
            稍微解釋一下,show_main是用set_file取得的文件句柄,rowlist是模板頁面中的區域標識一般如下方式來寫

             CODE:
            <table>
            <!-- BEGIN rowlist -->
                <tr>
                   <td>[[param]]</td>
                </tr>
            <!-- END rowlist -->
            </table>

            如上是將<tr></tr>作為了一個區塊,這樣就可以用循環來生成多行的列表了
            區塊是可以嵌套的

             CODE:
            <table>
            <!-- BEGIN rowlist -->
                <tr>
                   <!-- BEGIN collist -->
                <td>[[param]]</td>
                <!-- END collist -->
                </tr>
            <!-- END rowlist -->
            </table>

            如上所示,這聲明一個嵌套區塊,這在boeiBlog的像冊部分采用了這種方式,有興趣的朋友可以找出來看看
            對于嵌套的模板,我們可以這樣來使用
            $t->set_block("show_main","rowlist","RL"); // 里面的參數從前向后依次是包含的關系,最后一個是別名,主要用來區塊識別
            $t->set_block("rowlist","collist","CL"); // 第一個參數是外層塊的名稱,第二個是自己的名樂,第三個是別名
            循環這樣的區塊時要特別注意
            如下:

             CODE:
            $t->set_block("show_main","rowlist","RL");
            $t->set_block("rowlist","collist","CL");
            for($i=0;$i<5;$i++)
            {
                $t->set_var("CL");// 這里要對追加的列循環執行一次清理,否則會多出一堆東西
                for($ii=0;$ii<5;$ii++)
                {
                    $t->set_var("param","boeiBlog");
                    $t->parse("CL","collist",true);// true參數表明這是追加
                }
                $t->parse("RL","rowlist",true);// 這里的true也是表追加
            }

            上述代碼將會產生一個5X5的表格,每個單元格里會出現一個boeiBlog

            set_var:用來作變量替換
            上述代碼里的$t->set_var("param","boeiBlog");就是把模板中的param變量替換成boeiBlog這個字符串,當然也可以替換成變量,如:

             CODE:
            $curdate = date("Y-m-d");
            $t->set_var("param",$curdate);

            set_var也有追加屬性,如:

             CODE:
            $curdate = date("Y-m-d");
            for($i=0;$i<10;$i++)
            {
                $t->set_var("param","<br>".$curdate,true);

            這將產生十個連續的當前日期
            有時候可以用set_var的追加屬性來替代block的循環.

            set_var是可以用數組的,如:

             CODE:
            $t->set_var(array(
             "param"=>"boeiBlog",
             "title"=>"柏艾網絡"
            )); 

            模板如下:

             CODE:
            <table>
            <tr>
             <td>[[param]],[[title]]</td>
            </tr>
            </table> 

            parse:用于解析文件
            當我們將模板中的所有變量都處理完之后,可以用parse一將這個模板進行解析。這是模板處理的最后幾道工序。
            如:

             CODE:
            $t->set_file("show_index","index.htm");
            $t->set_file("show_main","main.htm");
            $t->set_var("param","boeiBlog");
            $t->parse("main","show_main"); 

            我們所用的模板可能是:

             CODE:
            main.htm
            <table>
            <tr>
             <td>[[param]]</td>
            </tr>
            </table> 

            如果此時還有另外一個模板,其結構如下:

             CODE:
            index.htm
            <div>[[main]]</div> 

            那么上述代碼將會把main.htm中的變量替換成boeiBlog后再放到index.htm中的main處,最后形成一個在<div></div>標簽中的表格

            解析完成之后便是輸出頁面,

            p:用于輸出頁面
            如:

             CODE:
            $t->set_file("show_index","index.htm");
            $t->set_file("show_main","main.htm");
            $t->set_var("param","boeiBlog");
            $t->parse("main","show_main");
            $t->parse("index","show_index");
            $t->p("index");// 此處便會將整個index頁面輸出,注意main.htm已經被嵌入到index.htm,所以不用$t->p("main"); 

            pparse:同p一樣也用來輸出頁面
            如:

             CODE:
            上述代碼可以如下簡化
            $t->set_file("show_index","index.htm");
            $t->set_file("show_main","main.htm");
            $t->set_var("param","boeiBlog");
            $t->parse("main","show_main");
            $t->pparse("index","show_index");// 此處將p和parse結合到一起,立即完成解析并輸出 

            get:用于獲得文件內容
            如:

             CODE:
            $t->set_file("show_index","index.htm");
            $t->set_file("show_main","main.htm");
            $t->set_var("param","boeiBlog");
            $t->parse("main","show_main");
            $t->parse("index","show_index");
            $getstr = $t->get("index");
            echo $getstr;// 你將會看到這實際上和p是一樣的。 
            利用get,我們可以輕松的取得生成頁面的內容,這可以用于靜態頁面的生成??梢钥吹絧hplib用來處理靜態頁面是非常方便的

            posted on 2005-12-07 17:52 閱讀(649) 評論(0)  編輯 收藏 引用 所屬分類: php學習與實踐
            精品国产乱码久久久久久1区2区| 国产精品欧美亚洲韩国日本久久| 久久久久久精品免费免费自慰| 欧美成人免费观看久久| 久久久久久精品免费看SSS| 亚洲AV日韩精品久久久久久久| 91精品国产综合久久婷婷| 91精品久久久久久无码| 狠狠色婷婷久久综合频道日韩| 国产69精品久久久久777| 久久精品这里只有精99品| 日韩人妻无码一区二区三区久久| 久久亚洲精品视频| 中文字幕乱码人妻无码久久| 国产精品美女久久久| 欧美久久久久久| 国产精品免费久久久久久久久| 久久精品日日躁夜夜躁欧美| 狠狠人妻久久久久久综合| 亚洲国产精品久久电影欧美| 韩国三级中文字幕hd久久精品| 久久人人爽人人爽人人片AV不 | 久久香蕉国产线看观看精品yw| 国产99久久久国产精品~~牛| 亚洲国产一成人久久精品| 亚洲精品无码久久不卡| 国产一区二区三精品久久久无广告| 久久午夜无码鲁丝片| 蜜臀av性久久久久蜜臀aⅴ| 久久人妻无码中文字幕| 色婷婷噜噜久久国产精品12p | 亚洲国产另类久久久精品| 久久有码中文字幕| 狠狠色伊人久久精品综合网 | 亚洲国产天堂久久久久久| 很黄很污的网站久久mimi色| 精品亚洲综合久久中文字幕| 成人久久久观看免费毛片| 久久精品视频网| 久久久久久久尹人综合网亚洲| 狠狠色婷婷综合天天久久丁香 |