• <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學習與實踐
            韩国无遮挡三级久久| 色综合久久天天综线观看| 亚洲精品乱码久久久久久中文字幕 | 久久精品桃花综合| 久久ZYZ资源站无码中文动漫| 99久久精品费精品国产一区二区| 国产成人久久久精品二区三区| 久久精品无码免费不卡| 久久天天躁狠狠躁夜夜网站| 国产精品无码久久四虎| 亚洲精品国产字幕久久不卡| 欧美777精品久久久久网| 一本色道久久综合亚洲精品| 国产免费福利体检区久久| 久久国产亚洲精品无码| 热久久视久久精品18| 97久久精品人人澡人人爽| 亚洲精品乱码久久久久66| 三级片免费观看久久| 伊人色综合久久天天| 久久久久久久久久久久中文字幕| 日本亚洲色大成网站WWW久久| 久久久久综合网久久| 久久国产欧美日韩精品| 99久久综合国产精品二区| 久久人人爽爽爽人久久久| 香蕉久久夜色精品国产2020 | 精品久久久久久中文字幕大豆网 | 思思久久99热免费精品6| 久久亚洲精品视频| 久久99热只有频精品8| 久久天天躁夜夜躁狠狠躁2022 | 2021最新久久久视精品爱| 久久久国产精华液| 国产精品永久久久久久久久久| 青青热久久综合网伊人| 国内精品久久久久久久亚洲| 国内精品久久国产大陆| 91精品国产综合久久四虎久久无码一级| 色综合久久久久综合体桃花网| 熟妇人妻久久中文字幕|