• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 使用phplib7.2中的Template處理BLOCK多重嵌套

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    現在大部分模板類中都提供block功能,block用來處理不確定個數的HTML 元素,當出現多層不可定的元素,就會用到block的嵌套,對于block嵌套的用法,經過多次 測試 還是有需要注意的地方,下面用一個例子說明block嵌套的一種處理方法。 1、我們先來看一下例子要


    現在大部分模板類中都提供block功能,block用來處理不確定個數的HTML 元素,當出現多層不可定的元素,就會用到block的嵌套,對于block嵌套的用法,經過多次測試還是有需要注意的地方,下面用一個例子說明block嵌套的一種處理方法。

    1、我們先來看一下例子要達到的效果(圖一):

     

    2、模板文件test.htm
    模板文件就是靜態的頁,可以用你喜歡的網頁編輯器編制他的外觀

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>無標題文檔</title>
    </head>
    <body>
    <table width="400" border="1" bordercolor="#000000">
    <tr><td><div align="center">{myname}測試block</div></td></tr>
    <tr><td>我的動植園:</td> </tr>
    <!-- BEGIN animalList -->
    <tr><td>{animal}</td></tr>
    <!-- BEGIN plantList -->
    <tr><td>&nbsp;&nbsp;{plant}</td></tr>
    <!-- END plantList -->
    <!-- END animalList -->
    </table>
    </body>
    </html>

    3、下面是php代碼文件test.php

    <?php
    include_once("template.inc");
    $t = new template(".");
    $myname = "小豬嚕嚕";

    /***************************************
    animal數組作為第一層block中循環數據,
    plant數組作為第二層block中循環數據,
    也可以根據自己的需要,從數據庫中讀去
    數據記錄
    ***************************************/
    $animal = array("動物","植物");
    $plant = array(array("小豬","小白","小強"),array("玫瑰","向日葵"));

    $t->set_file("myfilehandle","test.htm");

    //模板中{myname}被$myname的值替換
    $t->set_var("myname",$myname);

    /*************************************
    設置block ,先設置第一層block,文件句
    柄是myfilehandle,再設置第二層block,
    文件句柄是第一層block。注意兩句語句
    的次序
    *************************************/
    $t->set_block("myfilehandle","animalList","a");
    $t->set_block("animalList","plantList","p");

    //第一層block開始
    for ($i=0;$i<count($animal);$i++) {

    /*******************************
    這一句,很重要,不能少,它的作
    用是清除上一次第二層block的內容
    否則,結果如(圖二)所示,會重
    復顯示上一次第二層block的內容。
    原因是因為parse("p","plantList",true)
    中選項ture
    ******************************/
    $t->set_var("p");

    //模板中{animal}被$animal[$i]的值替換
    $t->set_var("animal",$animal[$i]);

    //第二層block開始
    for ($j=0;$j<count($plant[$i]);$j++) {

    //模板中{plant}被$plant[$i][$j]的值替換
    $t->set_var("plant",$plant[$i][$j]);

    //解析第一層block
    $t->parse("p","plantList",true);
    }

    //解析第二層block
    $t->parse("a","animalList",true);
    }
    $t->parse("out","myfilehandle");
    $t->p("out");
    ?>

     

    4、缺少$set_var(“p”)語句的效果:

    例子比較簡單,需要注意的地方我已經在程序的相應位置做了解釋。這只是其中的一種處理嵌套block的方法,與大家共享,希望對大家有幫助。感謝phpx和phpe.net上各位朋友的幫助完成此文。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>