検索
ホームページphp教程php手册テンプレート、PHPLIBの処理方法(2)

テンプレート

ネストされたテンプレート

parse() 関数の優れた特徴の 1 つは、some_color がテンプレート変数であるのと同様に、この関数が作成する MyOutput ハンドルが実際のテンプレート変数であることです。したがって、{MyOutput} タグを持つ別のテンプレートがある場合、2 番目のテンプレートを解析すると、すべての
{MyOutput} タグが MyOutput の解析されたテキストに置き換えられます。この機能を使用すると、テンプレート ファイルを別のテンプレート
に埋め込むことができます。したがって、次のコンテンツを含む、wholePage.ihtml という別のテンプレートがある可能性があります:

申し訳ありませんが、当選しませんでした。しかし、あなたが勝った場合、私たちはあなたにこう言います:
{MyOutput}

そして、wholePage.ihtml が分析された後の最終結果は次のようになります:

申し訳ありませんが、あなたは勝てませんでした。しかし、もしあなたが勝ったら、私たちはあなたにこう言います:
おめでとうございます!新しい青いホンダ プレリュードが当たります!

以下は 2 つのテンプレートを分析するための PHP コードです:


$t = new Template("/home/mydir/mytemplates/"); これらの 3 行は、最初の例
$t->set_file("MyFileHandle","MyTemplate.ihtml");
$t->set_var("some_color",$my_color);
$t->parse("MyOutput",") MyFileHandle" );

// p() を呼び出していないことに注意してください
// ここでは、まだ何も出力されていません

// 次に、2 番目のテンプレートを分析します
$t->set_file("WholeHandle","wholePage. ihtml" );

// WholePage.ihtml には "{MyOutput}" が含まれています
$t->parse("MyFinalOutput","WholeHandle");

// すべての {MyOutput} が置き換えられます
$t- >p("MyFinalOutput");
// MyFinalOutput の値を出力します

?>
parse() と p() を呼び出すステートメントの最後の 2 行は、短縮関数 pparse() に結合できます。 pparse( "MyFinalOutput","SecondHandle");
PHPLIB テンプレートのもう 1 つの特徴は、set_file() 関数と set_var() 関数がハンドル/配列
を渡すことによって、一度に複数の値のセットを受け取ることもできることです。配列。以下に例を示します。
$t->set_file(array( "pageOneHandle" => "pageone.ihtml",
"pageTwoHandle" => "pagetwo.ihtml")); ->set_var(array( "last_name" => "Gates",
"first_name" => "Bill",
"net_worth" => $reallybignumber));データを置換するのではなくテンプレート変数に追加したい場合は、parse() と pparse() に 3 番目の引数を渡すことができます。 $t->parse("MyOutput","MyFileHandle", true); のように、3 番目のパラメータとして true を使用するだけで、parse() と pparse() を呼び出すことができます。 MyOutput に既にデータが含まれている場合、MyFileHandle が解析され、MyOutput 内の既存のデータに追加されます。この手法は、テンプレートがすでにあり、同じテキストを複数回繰り返す場合 (たとえば、データベース クエリの結果に複数の行をリストする場合など) に便利です。次の例のように、変数を配列で表示することもできます。
$t = new Template("/home/mydir/mytemplates/"); $t->set_file(array("mainpage") => "mainpage.ihtml", "each_element" => "each_element.ihtml"));reset($myArray);while (list($elementName, $elementValue) = each($myArray)) {
// 'value' と 'name' を各要素の値と名前に設定します
$t->set_var("name",$elementName); $t->set_var("value",$elementValue); each_element のコピーを追加します
$t->parse("array_elements","each_element",true);}$t->gt;pparse("output","mainpage");?>
この例では 2 つのテンプレートを使用しています、mainpage.ihtml、および each_element.ihtml。 mainpage.ihtml テンプレートは次のようになります:


配列は次のとおりです:

{array_elements}

上記の {array_elements} タグは each_element.ihtml のコピーに置き換えられ、これは以下に基づいて再作成されます。配列 ($myArray)
複合体。 each_element.ihtml テンプレートは次のようになります:

{name}: {value}

結果は、$myArray 要素を含む適切にフォーマットされたテーブルになります。しかし、2 つのテンプレートを 1 つにマージした方が良いと思いませんか?実際、テンプレート ブロックを使用してこれらを組み合わせることができます。テンプレート ブロックを使用すると、テンプレートからテキストのブロックを取得できるので、それを何度も繰り返したり、好きなことを実行したりできます。ただし、この機能については別の記事で説明します。








声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。