• <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
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            潛心看書研究!

            常用鏈接

            留言簿(19)

            隨筆分類(81)

            文章分類(89)

            相冊

            ACM OJ

            My friends

            搜索

            •  

            積分與排名

            • 積分 - 216452
            • 排名 - 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,我們可以輕松的取得生成頁面的內容,這可以用于靜態頁面的生成。可以看到phplib用來處理靜態頁面是非常方便的

            posted on 2005-12-07 17:52 閱讀(649) 評論(0)  編輯 收藏 引用 所屬分類: php學習與實踐
            香蕉久久夜色精品国产小说| 久久综合亚洲色一区二区三区| 久久这里只有精品首页| 精品久久人人做人人爽综合| 精品久久久久久久久中文字幕| 无码日韩人妻精品久久蜜桃 | 久久精品国产99久久久古代| 九九久久精品无码专区| 久久人妻少妇嫩草AV无码蜜桃| 精品乱码久久久久久夜夜嗨| 久久本道综合久久伊人| 久久久久亚洲AV成人网| 亚洲七七久久精品中文国产| 2021国产精品久久精品| 久久久久AV综合网成人 | 久久香蕉国产线看观看乱码| 久久亚洲精品中文字幕三区| 久久久精品无码专区不卡| 怡红院日本一道日本久久 | 国产精品久久久久久久| 久久国产精品-国产精品| 精品久久久久久无码中文字幕| 久久精品亚洲欧美日韩久久| 免费无码国产欧美久久18| 久久精品a亚洲国产v高清不卡 | 国产精品99久久久久久董美香| 久久久久国产一区二区三区| 久久免费视频1| 青青青青久久精品国产h| 合区精品久久久中文字幕一区 | 国产69精品久久久久APP下载 | 九九久久精品国产| 亚洲AV无码久久精品色欲| 久久AAAA片一区二区| 久久精品99久久香蕉国产色戒 | 国产一区二区三区久久精品| 久久久久国产精品三级网| 久久久久人妻一区精品色| 久久免费香蕉视频| 99久久国产主播综合精品| 日韩AV无码久久一区二区|