ホームページ > php教程 > php手册 > phplib7.2 のテンプレートを使用して BLOCK の複数のネストを処理する

phplib7.2 のテンプレートを使用して BLOCK の複数のネストを処理する

WBOY
リリース: 2016-06-21 09:10:18
オリジナル
1150 人が閲覧しました

現在、ほとんどのテンプレート クラスはブロック機能を提供していますが、未定義の要素が複数層ある場合には、ブロック ネストを使用することが多くなります。以下では、ブロックのネストを処理する方法を説明するために例を使用します。

1. まず、例によって達成される効果を見てみましょう (図 1):



2. テンプレート ファイル test.htm
テンプレート ファイルは、お気に入りの Web エディターを使用できます。外観を編集するには






無題ドキュメント










{myname}テスト ブロック
私の動植物園:
{animal}< /td>
{plant}




3 以下は、php コード ファイル test.php

です。
include_once("template.inc");
$t = 新しいテンプレート(".");
$myname = "子豚のルル";

/****************************************
動物配列は最初のループデータとして使用されますレイヤーブロック、
プラント配列は 2 番目のレイヤーブロックのループデータとして使用されます
必要に応じてデータベースから読み取ることもできます
************ ************ *****************/
$animal = array(" 動物","植物");
$plant = array(array("子豚","小白","小強"),array("バラ","ひまわり"));

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

// テンプレート内の {myname} は $myname
$t->set_var("myname",$myname); の値に置き換えられます。

/****************************************
ブロックを設定する、まず最初の層のブロックを設定し、ファイル文
ハンドル myfilehandle で、次に 2 層目のブロックを設定します。
ファイルハンドルは 1 層目のブロックです。 2つの文の順序に注意してください

*************************************/
$t->set_block("myfilehandle","animalList","a");
$t->set_block("animalList","plantList","p" );

// ブロックの最初の層が始まります
for ($i=0;$i
/*********************************
この文は非常に重要であり、その機能は最後の 1 秒をクリアすることです。レイヤーブロックの内容
それ以外の場合、結果は(図2)のようになり、最後の2番目のレイヤーブロックの内容が再度表示されます。
その理由は、parse("p","plantList",true)のオプションtrueだからです

*************************** ***/
$t->set_var ("p");

// テンプレート内の {animal} は $animal[$i] の値に置き換えられます
$t->set_var("animal",$animal[$i]);

// ブロックの 2 番目の層が始まります
for ( $j=0;$j
// テンプレート内の {plant} は $ の値に置き換えられますplant[$i][$j]
$t->set_var("plant",$plant[$i][$j]);

//最初の層のブロックを解析します
$t->parse( "p","plantList",true);
}

//第二層ブロックを解析します
$t->parse("a","animalList",true);
}
$t->parse ("out","myfilehandle");
$t- >p("out");
?>



4. $set_var("p") ステートメントを省略した場合の影響:


この例は、説明したプログラムの対応する位置で注意する必要があることをすでに実行しています。これは、ネストされたブロックに対処する方法の 1 つです。皆さんのお役に立てれば幸いです。この記事を完成させるのに協力してくれた phpx と phpe.net の友人全員に感謝します。







関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート