• <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年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            潛心看書研究!

            常用鏈接

            留言簿(19)

            隨筆分類(81)

            文章分類(89)

            相冊

            ACM OJ

            My friends

            搜索

            •  

            積分與排名

            • 積分 - 217765
            • 排名 - 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 閱讀(657) 評論(0)  編輯 收藏 引用 所屬分類: php學習與實踐
            欧美大香线蕉线伊人久久| 四虎影视久久久免费观看| 99久久精品国产麻豆| 久久综合久久久| 无码八A片人妻少妇久久| 久久久久久人妻无码| 久久精品国产99久久香蕉| 77777亚洲午夜久久多喷| 69久久夜色精品国产69| 久久国产精品无| 国产一级持黄大片99久久| 久久婷婷色香五月综合激情| 久久91精品久久91综合| 国产精品99久久久久久宅男小说| 久久综合九色综合久99| 亚洲香蕉网久久综合影视| 久久久久国产| 久久久久久久99精品免费观看| 亚洲国产成人乱码精品女人久久久不卡 | 精品久久人人爽天天玩人人妻| 久久99精品久久久久久hb无码| 青青青青久久精品国产h久久精品五福影院1421 | 91久久香蕉国产熟女线看| 少妇内射兰兰久久| 性做久久久久久久久浪潮| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久e热在这里只有国产中文精品99| 国产激情久久久久久熟女老人| 久久无码国产| 久久精品无码免费不卡| 91精品国产91热久久久久福利| 久久被窝电影亚洲爽爽爽| 97久久超碰成人精品网站| 久久综合香蕉国产蜜臀AV| 欧美一区二区三区久久综| 久久久噜噜噜久久中文福利| 亚洲成色WWW久久网站| 久久久久亚洲精品天堂| 久久久精品人妻一区二区三区蜜桃 | 一个色综合久久| 久久人妻少妇嫩草AV蜜桃|