• <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-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網


    現在大部分模板類中都提供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/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>