ホームページ > バックエンド開発 > PHPチュートリアル > PHP で Smarty を使用する パート 6: Smarty 組み込み関数_PHP チュートリアル

PHP で Smarty を使用する パート 6: Smarty 組み込み関数_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:46:30
オリジナル
853 人が閲覧しました

Smarty の組み込み関数: Smarty にはいくつかの組み込み関数が付属しています。組み込み関数はテンプレート言語の一部です。ユーザーは、組み込み関数と同じ名前のカスタム関数を作成したり、組み込み関数を変更したりすることはできません。

Smarty の組み込み関数を以下に説明し、例を示します:

Smarty テンプレート エンジンの初期化ファイル init.inc.php と例で使用されるメイン ファイル Index.php

init.inc.php

Define('ROOT_PATH', dirname(__FILE__)) // Web サイトのルート ディレクトリを設定します

require ROOT_PATH.'/libs/Smarty.class.php' //Smarty テンプレート エンジンをロードします

;

$_tpl = new Smarty() // インスタンス オブジェクトを作成します

$_tpl->template_dir = ROOT_PATH.'/tpl/' //テンプレートディレクトリを再指定します

;

$_tpl->compile_dir = ROOT_PATH.'./com/' //コンパイルディレクトリを再指定します

;

$_tpl->left_delimiter = '<{' //左区切り文字を再指定します

;

$_tpl->right_delimiter = '}>' //正しい区切り文字を再指定します

;

?>

インデックス.php

require 'init.inc.php' // テンプレート初期化ファイルを導入します

;

グローバル $_tpl;

$_tpl->display('index.tpl') //テンプレートを紹介します

?>


1.キャプチャ

を入力してください
プロパティ 必要ですか デフォルト値 説明
名前 文字列 いや デフォルト データ収集エリア名
割り当てる 文字列 いいえ なし [テスト対象]変数名に割り当てられたデータ収集領域はどこですか

キャプチャ関数の機能は、テンプレートによって出力されたデータをページに出力するのではなく、キャプチャして変数に格納することです。{capture name="foo"} と {/capture} の間のデータはすべて In に格納されます。変数 $foo 。変数は name 属性で指定され、テンプレート内の $smarty.capture.foo を通じてアクセスされます。 name 属性が指定されていない場合、関数はデフォルトでパラメータとして「default」を使用します。{capture} はペアで指定する必要があります。つまり、関数はネストできません。以下のテンプレート ファイルの例を参照してください。

/tpl/index.tpl

キャプチャ

<{キャプチャ名="foo"}>

デフォルトでは表示されないキャプチャ機能内の内容です。

<{/キャプチャ}>

<{$smarty.capture.foo}>

2.config_load

を入力してください
プロパティ 必要ですか デフォルト値 説明
ファイル 文字列 はい なし インクルードする設定ファイルの名前
セクション 文字列 いいえ なし 設定ファイルに読み込む部分の名前
範囲 文字列 いや 地元 データをロードするスコープ。値はローカル、親、またはグローバルである必要があります。ローカルは、変数のスコープが現在のテンプレートであることを示します。parent は、変数のスコープが現在のテンプレートおよび現在のテンプレートの親テンプレートであることを示します。現在のテンプレートを呼び出すテンプレート) .global は、この変数のスコープがすべてのテンプレートであることを示します。
グローバル ブール値 いいえ いいえ ロードされた変数がグローバルに表示されるかどうかを示します。scope=parent と同等です。 注: スコープ属性が指定されている場合、この属性を設定できますが、テンプレートは属性値を無視し、スコープ属性を基準として使用します。

config_load 関数は、設定ファイルから変数をロードするために使用されます。config_load 関数の使用方法については、「PHP での Smarty の使用 パート 2: テンプレート変数での設定ファイルの使用」を参照してください。

3.含む

を入力してください
プロパティ 必要ですか デフォルト値 説明
ファイル 文字列 はい なし インクルードするテンプレートファイル名
割り当てる 文字列 いいえ なし この属性は、含めるテンプレートの出力を保持する変数を指定します
[var...] [var 型] いいえ なし 含めるテンプレートに渡されるローカルパラメータは、含めるテンプレート内でのみ有効です

include 関数は、現在のテンプレートに他のテンプレートを含めるために使用されます。現在のテンプレートの変数は、テンプレート リソースの場所を指定するファイル属性を指定する必要があります。 assign 属性が設定されている場合、この属性に対応する変数名が組み込まれるテンプレートの出力を保存するために使用されるため、組み込まれるテンプレートの出力は直接表示されません。以下の例をご覧ください:

/tpl/index.tpl

{include file="header.tpl"}

{* テンプレートの本文がここに入ります *}

{include file="footer.tpl"}

4. if、elseif、else

Smarty の if ステートメントは、PHP の if ステートメントと同じくらい柔軟で使いやすく、テンプレート エンジンに合わせていくつかの機能が追加されています。if は /if 句とペアで使用する必要があります。

次の条件修飾子を使用できます: eq、ne、neq、gt、lt、lte、le、gte、ge、iseven、isodd、isnoteven、isnotodd、not、mod、div by、even by、奇数 by、==、!=、>、<、<=、>=。これらの修飾子を使用する場合は、変数または定数とスペースで区切る必要があります。

これらの修飾子の意味は以下で説明されています:

による分割 までに 奇数 by 商は奇数ですか && || または () 括弧は優先順位を変更します


5. ldelim と rdelim
中括弧「{」と「}」の出力区切り文字に使用されます。テンプレート エンジンは常に中括弧内の内容を解釈しようとするため、中括弧を出力する必要がある場合は、このメソッドを使用します。以下の例をご覧ください:

/tpl/index.tpl

ldelim と rdelim

<{ldelim}>funcname<{rdelim}> は Smarty の関数です。

6.リテラル

リテラル タグ領域のデータはテキストとして扱われ、テンプレートはその中のすべての文字情報を無視します。この機能は、この情報が {literal}{ に含まれる場合に、その中に含まれる文字情報を含む可能性のある JavaScript スクリプトを表示するために使用されます。 /literal} タグを含む場合、テンプレート エンジンはそれらを分析せず、実際、すべての例のタグ スタイルに従って直接表示します (左区切り文字と右区切り文字が init.inc.php 初期化ファイルの区切り文字でリセットされているため) )Smarty のデフォルト スタイルの代わりに、この状況は基本的に発生しません。この関数の使用方法については、以下の例を参照してください

/tpl/index.tpl

リテラル

<{リテラル}>

<スクリプト言語=javascript>

                                                                                                                           

Web 開発者は、スペースやキャリッジ リターンが HTML 出力に影響を与えるため、特定の結果を得るためにテンプレート内のすべてのタグを実行する必要があるという状況に何度も遭遇しました。この問題は通常、理解しにくいテンプレートで発生します。またはプロセス。 Smarty は、表示する前に、{strip}{/strip} タグ内のデータから先頭と末尾のスペースと改行を削除します。これにより、テンプレートが理解しやすくなり、余分なスペースが問題を引き起こすことを心配する必要がなくなります。

まず、Smarty テンプレート エンジンの組み込み関数の使用方法について概要を説明します。組み込み関数のうち、(foreach、foreachelse、section、sectionelse)を以下に整理します。

Lee.さんのコラムより抜粋

http://www.bkjia.com/PHPjc/478569.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/478569.html

技術記事

Smarty の組み込み関数: Smarty にはいくつかの組み込み関数が付属しており、ユーザーは組み込み関数と同じ名前のカスタム関数を作成したり、組み込み関数を変更したりすることはできません。機能...

条件修饰符 作用描述
エク ==
!=
ねく !=
GT >
LTE
ぐて >=
>=
均等です 偶数ですか
奇妙です 奇数ですか
均等ではありません 偶数じゃないですか
変じゃないよ 奇数じゃないですか
違います !=
モッド モデルさん募集中
割り切れるのか?
商は偶数ですか?
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート