ホームページ  >  記事  >  バックエンド開発  >  Smarty でよく使用される変数演算子の概要、Smarty 演算子の概要_PHP チュートリアル

Smarty でよく使用される変数演算子の概要、Smarty 演算子の概要_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:15:49940ブラウズ

Smartyでよく使われる変数演算子のまとめ、Smarty演算子のまとめ

この記事では、Smarty で一般的に使用される変数演算子を要約し、参考のために共有します。詳細は以下の通りです

PHPテンプレートエンジンsmartyの変数演算子を使用して、変数、カスタム関数、文字を操作できます。
変数演算子を適用するには構文で「|」を使用し、複数のパラメーターには「:」を使用します?/DIV>

大文字にする[大文字にする]
count_characters[文字数を数える]
猫[接続文字列]
count_paragraphs[段落数を数える]
count_sentences[文を数える]
count_words[単語数を数える]
date_format[時刻形式]
デフォルト[デフォルト]
エスケープ[トランスコーディング]
インデント[インデント]
小文字[小文字]
nl2br[改行は
に置き換えられます]
regex_replace[定期置換]
交換[交換]
スペースを空ける[空白を挿入]
string_format[文字列形式]
削除[(余分なスペース)を削除]
ストリップタグ[HTMLタグを削除]
切り詰め[インターセプト]
アッパー[大文字]
ワードラップ[線幅制限]
複数の演算子を組み合わせる

例は次のとおりです:

コードをコピーします コードは次のとおりです:
{*タイトルを大文字にします*}

{$title|upper}


{* 最初の 40 文字を取得 *}
トピック: {$topic|truncate:40:"..."}
{* テキスト文字列の書式設定 *}
{"now"|date_format:"%Y/%m/%d"}
{* カスタム関数でレギュレーターを適用 *}
{mailto|上位アドレス="main@cn-web.com"}
Capitalize(最初の文字を大文字にする)

index.php ページは次のとおりです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', '警察はジェイウォーカーを摘発するキャンペーンを開始。');
$smarty->display('index.tpl');

index.tpl ページは次のとおりです:

コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|大文字}

OUTPUT 出力は次のとおりです:

コードをコピーします コードは次のとおりです:
警察はジェイウォーカーを追い詰めるキャンペーンを開始します。
警察はジェイウォーカーを排除するためのキャンペーンを開始します。

count_characters (変数内の文字数をカウントします)

index.phpは以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', '寒波は気温と関係している。');
$smarty->display('index.tpl');

index.tpl ページは次のとおりです:

コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|count_characters}

OUTPUT 出力は次のとおりです:

寒波は気温と関係しています

猫(接続文字列)
cat の値を指定された変数に接続します
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', '超能力者は世界は終わらなかったと予測');
$smarty->display('index.tpl');

index.tpl ページは次のとおりです:

コードをコピーします コードは次のとおりです:
{$articleTitle|cat:" Yesterday."}

OUTPUT 出力は次のとおりです:

コードをコピーします コードは次のとおりです:
霊能者は、世界は昨日終わらなかったと予測します。

count_paragraphs(段落数をカウント)
変数内の段落数を数えます
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', '戦争が平和への希望をかすめる。子供の死が夫婦の休日を台無しにする。');
$smarty->display('index.tpl');

index.tplテンプレートページは以下のとおりです:

コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|count_paragraphs}

OUTPUT 出力は次のとおりです:

コードをコピーします コードは次のとおりです:
戦争は平和への希望を暗くします。 子供の死は、夫婦の休日を台無しにします。

人間は致命傷を負う。死は孤独感、孤立感を引き起こす。 2

count_sentences(文の数を数える)

変数内の文の数を数えます
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'ソ連の船 2 隻が衝突 - 1 隻死亡。激怒した牛が農夫を斧で負傷。');
$smarty->display('index.tpl');

index.tpl テンプレートは次のとおりです:

コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|count_sentences}

OUTPUT 出力は次のとおりです:

コードをコピーします コードは次のとおりです:
2隻のソ連船が衝突 - 1隻が激怒した牛が農夫を斧で負傷
2

count_words(単語数を数える)
変数内の単語の数を数えます
Index.php は以下の通りです:
コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'ディーラーは正午に車の話を聞くことになります。');
$smarty->display('index.tpl');

index.tpl テンプレートは次のとおりです:

コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|count_words}

OUTPUT 出力は次のとおりです:

コードをコピーします コードは次のとおりです:
ディーラーは正午に車の話を聞きます
7

date_format(日付形式)
パラメータの位置
パラメータの場所 タイプ 必須 デフォルト 説明
1文字列 No %b %e, %Y 出力される日付の形式です
出力文字列形式
2 文字列 いいえ n/a 入力が空の場合のデフォルトの日付です。
入力が空の場合のデフォルト設定
指定された関数 serftime() で日付と時刻をフォーマットします
; Unix または mysql (strtotime で解析可能) からのタイムスタンプを Smarty に渡すことができます。
デザイナーは date_format を使用して日付形式を完全に制御できます。
date_format に渡されたデータが空の場合、2 番目のパラメーターが時刻形式として使用されます
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('昨日', strtotime('-1 日'));
$smarty->display('index.tpl');

index.tpl:

コードをコピーします コードは次のとおりです:
{$smarty.now|date_format}
{$smarty.now|date_format:"%A, %B %e, %Y"}
{$smarty.now|date_format:"%H:%M:%S"}
{$昨日|date_format}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$yesterday|date_format:"%H:%M:%S"}

OUTPUT 出力は次のとおりです:

コードをコピーします コードは次のとおりです:
2001年2月6日
2001年2月6日火曜日
14:33:00
2001年2月5日
2001年2月5日月曜日
14:33:00
デフォルト(デフォルト)
パラメータ 位置 タイプ 必須 デフォルト 説明
1 文字列 空なし これは、変数が空の場合に出力されるデフォルト値です。

これは変数が空の場合のデフォルトの出力です
空の変数のデフォルト値を設定します。 変数が空または未割り当ての場合、代わりに指定されたデフォルト値が出力されます。
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'ディーラーは正午に車の話を聞くことになります。');
$smarty->display('index.tpl');
index.tpl テンプレート:

コードをコピーします コードは次のとおりです:
{$articleTitle|default:"no title"}
{$myTitle|デフォルト:「タイトルなし」}
出力出力:

コードをコピーします コードは次のとおりです:
ディーラーは正午に車の話を聞きます
タイトルなし
エスケープ(トランスコーディング)
パラメータ 位置 タイプ 必須 可能な値 デフォルト 説明
1 文字列 いいえ html,htmlall,url,quotes,hex,hexentity,javascript html 使用するエスケープ形式です
HTML トランスコーディング、URL トランスコーディング、トランスコードされていない変数の一重引用符の変換、16 進トランスコーディング、16 進整形、または JavaScript トランスコーディングに使用されます。
デフォルトは HTML トランスコーディングです
Index.php は以下の通りです:


コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', "'棺のない葬儀計画には厳しい反対が予想される'");
$smarty->display('index.tpl');

Index.tpl テンプレート:


コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|エスケープ}
{$articleTitle|escape:"html"} {* エスケープ & " ' > *}
{$articleTitle|escape:"htmlall"} {* すべての HTML エンティティをエスケープします *}
{$articleTitle|エスケープ:"url"}
{$articleTitle|エスケープ:"引用"}
href="{$EmailAddress|escape:"hexentity"}mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}

 
出力出力:
 
复制番号代番号如下:
「棺のない葬儀計画には厳しい反対が予想される」
「厳しい%20反対%20期待%20to%20棺なし%20葬儀%20計画」
「厳しい%20反対%20期待%20to%20棺なし%20葬儀%20計画」
「厳しい%20反対%20期待%20to%20棺なし%20葬儀%20計画」
「堅い+反対+期待+へ+棺なし+葬儀+計画」
「棺のない葬儀計画には厳しい反対が予想される」
href="bob@me.netmailto:%62%6f%62%40%6d%65%2e%6e%65%74">bob@me.net

インデント(缩进)
パラメータ 位置 タイプ 必須 デフォルト 説明
1 整数 いいえ 4 インデントする文字数を決定します。
2 文字列 No (スペース 1 つ) インデントに使用する文字です。
在每行缩进字符串,默认是4个字符(梨标標準也是).
オプションのパラメータとして、缩进文字数を指定できます。
2 番目のオプションのパラメータとして、代わりに缩进用の文字を指定できます
Index.php如下:
 
复制代码代码如下:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'ニュージャージー州の判事、ヌードビーチで判決へ。');
$smarty->display('index.tpl');

 
Index.tplモジュール板:
 
复正代代価如下:
{$articleTitle}
 
{$articleTitle|インデント}
 
{$articleTitle|インデント:10}
 
{$articleTitle|インデント:1:"t"}

 
出力出力:
 
复制代代価如下:
ニュージャージー州の裁判官、ヌードビーチに判決を下す。
今日は晴れか雨が予想されますが、今夜は暗いです
統計によると、10代の妊娠は25歳を過ぎると大幅に減少します
 
ニュージャージー州の判事、ヌードビーチに判決
今日は晴れか雨が予想されますが、今夜は暗いです
統計によると、10代の妊娠は25歳を過ぎると大幅に減少します
ニュージャージー州の判事、ヌードビーチに判決
今日は晴れか雨が予想されますが、今夜は暗いです
統計によると、10代の妊娠は25歳を過ぎると大幅に減少します
 
ニュージャージー州の判事、ヌードビーチに判決
今日は晴れか雨が予想されますが、今夜は暗いです
統計によると、10代の妊娠は25歳を過ぎると大幅に減少します

下(小写)
将变量字符串小写
Index.php如下:

复制代码代码如下:
$smarty = new Smarty;
$smarty->assign('articleTitle', '2 人の有罪判決者が縄を回避、陪審はハン。');
$smarty->display('index.tpl');

Index.tplモジュール板:
复正代代価如下:
{$articleTitle}
{$articleTitle|下}

出力出力:
复制代代価如下:
2人の有罪判決者が縄を回避、陪審員はフン。 2人の有罪判決者が縄を逃れ、陪審は絞首刑に。
nl2br(换行符代替换成
)
すべての実行記号は、
.同phpのnl2br()関数一样.に置き換えられます。 Index.php如下:




复制代码

代码如下:$smarty = new Smarty; $smarty->assign('articleTitle', "今日は晴れか雨が予想されますが、今夜は暗いです");
$smarty->display('index.tpl');

Index.tplモジュール板:


复制代
代価如下:{$articleTitle|nl2br}
出力出力:


复制代码
代码如下:今日は晴れか雨が予想されます
今夜は暗いです

regex_replace(定期置換)
正規表現を検索して置換します。
パラメータ 位置 タイプ 必須 デフォルト 説明
1 文字列 はい 該当なし これは置換される正規表現です。
正規表現を置き換えます。

2 文字列 はい n/a これは、置換するテキストの文字列です。
置換に使用するテキスト文字列
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', "不妊症が遺伝する可能性は低い、と専門家は言う。");
$smarty->display('index.tpl');

Index.tpl テンプレート:
コードをコピーします コードは次のとおりです:
{* それぞれの復帰、タブ、改行をスペースに置き換えます *}{* それぞれの復帰、タブ、改行をスペースに置き換えるには、スペースを使用します*}
{$articleTitle}
{$articleTitle|regex_replace:"/[rtn]/":" "}

出力出力:
コードをコピーします コードは次のとおりです:
不妊症の可能性は低いです
専門家によれば、引き継がれる可能性があります
不妊症が遺伝する可能性は低い、と専門家は言う

交換(交換)
シンプルな検索と文字列の置換
パラメータ 位置 タイプ 必須 デフォルト 説明
1 文字列 はい n/a これは、置換されるテキストの文字列です。
置換される文字列
2 文字列 はい 該当なし これは、置換するテキストの文字列です。
置換するテキスト
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', "庭での使用に最適な子供用スツール。");
$smarty->display('index.tpl');

Index.tpl テンプレート:
コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|replace:"庭園":"ブドウ園"}
{$articleTitle|置換:" ":" "}

出力出力:
コードをコピーします コードは次のとおりです:
子供用スツールは庭での使用に最適です。
ブドウ園での使用に最適な子供用スツールです。
庭での使用に最適な子供用スツール

スペースを取る
文字列の各文字の間にスペースや他の文字(文字列)を挿入する方法です。
Index.php は以下の通りです:
コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'ジェット機の墜落で何か問題があったと専門家は言う。');
$smarty->display('index.tpl');

Index.tpl テンプレート:
コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|空白化}
{$articleTitle|空白:"^^"}

出力出力:
コードをコピーします コードは次のとおりです:
ジェット機の墜落で何か問題が発生した、と専門家は言う
ジェットクラッシュに何か問題がありました。専門家、よろしくお願いします。
S^^o^^m^^e^^t^^h^^i^^n^^g^^ ^^W^^e^^n^^t^^ ^^W^^r^^o ^^n^^g^^ ^^i^^n^^ ^^J^^e^^t^^ ^^C^^r^^a^^s^^h^^,^^ ^^E ^^x^^p^^e^^r^^t^^s^^ ^^S^^a^^y^^.

string_format(文字列形式)
パラメータ 位置 タイプ 必須 デフォルト 説明
1 文字列 はい 該当なし これが使用する形式です (sprintf)
使用されるフォーマット方法
浮動小数点数をフォーマットする方法です。たとえば、sprintf 構文を使用して
をフォーマットします。 Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('number', 23.5787446);
$smarty->display('index.tpl');

Index.tpl テンプレート:
コードをコピーします コードは次のとおりです:
{$number}
{$number|string_format:"%.2f"}
{$number|string_format:"%d"}

出力出力:
コードをコピーします コードは次のとおりです:
23.5787446
23.58
24

strip (余分なスペースを削除)
繰り返されるスペース、改行、タブをすべて単一のものに置き換えます。
Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', "夜の祖母がホールインワンを作りました。");
$smarty->display('index.tpl');

Index.tpl テンプレート:
コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|ストリップ}
{$articleTitle|ストリップ:" "}

出力出力:
コードをコピーします コードは次のとおりです:

の祖母 8 つでホールインワンになります
8 人の子供の祖母がホールインワンを達成しました。
8 人の子供の祖母がホールインワンを達成しました。

strip_tags(HTMLタグを削除)
< と > の間のタグをすべて削除します。 Index.php は以下の通りです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', "盲目の女性、何年も会っていなかった父親から新しい腎臓をもらいました。" );
$smarty->display('index.tpl');
Index.tpl テンプレート:

コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|strip_tags}
出力出力:

コードをコピー コードは次のとおりです:
盲目の女性、何年も会っていなかった父親から新しい腎臓をもらいました 目の見えない女性が、何年も会っていなかった父親から新しい腎臓をもらいました。
トランケート(インターセプト)
パラメータ 位置 タイプ 必須 デフォルト 説明
1 整数 No 80 これにより、切り詰められる文字数が決まります。
インターセプトする文字数を指定します
2 文字列 いいえ ... これは切り捨てが発生した場合に追加するテキストです。
インターセプトされ、インターセプトされた単語の後に追加される文字列
3 boolean No false これは、単語の境界で切り詰めるか (false)、文字そのもので切り詰めるか (true) を決定します。 単語の境界がインターセプトされているかどうかを確認します
文字列の先頭をインターセプトします。デフォルトは 80 です。
2 番目のパラメーターには、インターセプトされた文字列の後に追加する文字を指定できます。
デフォルトでは、smarty は単語の末尾をインターセプトします
正確に何文字をインターセプトしたい場合は、3 番目のパラメータを「true」に変更します
Index.php は以下の通りです:


コードをコピーします コードは次のとおりです:$smarty = new Smarty;
$smarty->assign('articleTitle', '2 人の姉妹がレジカウンターで 18 年ぶりに再会');
$smarty->display('index.tpl');

Index.tpl テンプレート:


コードをコピーします コードは次のとおりです:{$articleTitle}
{$articleTitle|truncate}
{$articleTitle|truncate:30}
{$articleTitle|truncate:30:""}
{$articleTitle|truncate:30:"---"}
{$articleTitle|truncate:30:"":true}
{$articleTitle|truncate:30:"...":true}

出力出力:


コードをコピーします コードは次のとおりです:レジカウンターで18年ぶりに再会した二人の姉妹
2 人の姉妹がレジカウンターで 18 年ぶりに再会
二人の姉妹はその後...
二人の姉妹が再会
二人の姉妹の再会---
8時過ぎに姉妹が再会
二人の姉妹がE後に再会...

大文字(大文字) 変数を大文字に変更します

Index.php は以下の通りです:


コードをコピーします コードは次のとおりです:$smarty = new Smarty;
$smarty->assign('articleTitle', "ストライキがすぐに解決されない場合、しばらく続く可能性があります。");
$smarty->display('index.tpl');

Index.tpl テンプレート:


コードをコピーします コードは次のとおりです:{$articleTitle}
{$articleTitle|upper}

出力出力:


コードをコピーします コードは次のとおりです:ストライキがすぐに解決されない場合、しばらく続く可能性があります。
ストライキがすぐに解決されない場合、しばらく続く可能性があります。

ワードラップ(線幅制限) 段落の幅 (つまり、1 行に何文字入るか。文字数がこの数値を超えると改行されます) を指定できます。デフォルトは 80 です。

2 番目のパラメーターはオプションで、制約ポイントで使用する文字を指定できます (デフォルトは改行文字 n)。 デフォルトでは、smarty は単語の末尾までインターセプトしますが、インターセプトする正確な文字数を指定することもできます
パラメータ 位置 タイプ 必須 デフォルト 説明
1 整数 いいえ 80 これにより、ラップする列の数が決まります。
段落(文章)の幅を指定します
2 string No n これは単語をラップするために使用される文字列です。
どの文字制約を使用するか
3 boolean No false 単語の境界で折り返すか(false)、文字そのもので折り返すか(true)を決定します。 文字に正確に制限するかどうか
Index.php は以下の通りです:



コードをコピーします

コードは次のとおりです:
$smarty = 新しい Smarty;
$smarty->assign('articleTitle', "盲目の女性、何年も会っていなかった父親から新しい腎臓をもらいました。");
$smarty->display('index.tpl');

Index.tpl テンプレート:
コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|ワードラップ:30}
{$articleTitle|ワードラップ:20}
{$articleTitle|wordwrap:30:"
n"}
{$articleTitle|wordwrap:30:"n":true}

出力出力:
コードをコピーします コードは次のとおりです:
盲目の女性は、何年も会っていなかった父親から新しい腎臓を受け取ります。
盲目の女性が新しい腎臓を得る
会っていないお父さんから

盲目の女性が新しくなる
お父さんからの腎臓

で見ていない 年
盲目の女性が新しい腎臓を得る

何年も会っていないお父さんから
盲目の女性が新しい腎臓を得る
ああ、お父さん、彼女はもう何年も会っていない
s.

複数の演算子を組み合わせる
演算子は変数に適用でき、複数の演算子は「|」記号で区切る必要があります。 Index.php ページは次のとおりです:

コードをコピーします コードは次のとおりです:
$smarty = new Smarty;
$smarty->assign('articleTitle', '喫煙者は生産的ですが、死ぬと効率が下がります。');
$smarty->display('index.tpl');
index.tpl テンプレート:


コードをコピーします コードは次のとおりです:
{$articleTitle}
{$articleTitle|上|空間}
{$articleTitle|下位|空白化|切り詰め}
{$articleTitle|下位|truncate:30|spacify}
{$articleTitle| lower|spacify|truncate:30:". . ."}
出力出力:

コードをコピーします コードは次のとおりです:
喫煙者は生産的ですが、死ぬと効率が下がります。
喫煙者は製品を消費し、効果を高めます。
喫煙者は製品を販売していますが、カットが不十分です...
喫煙者は製品ですが、
喫煙者です
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

Smarty テンプレートで PHP 変数を使用する方法?

その方法です。


Smarty テンプレートの変数増分問題

これを試しました:

<{assign var="i" value="1"}> (ループの外に置きます)
<{assign var="i" value=$i+1}>ループ内)

http://www.bkjia.com/PHPjc/901284.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/901284.html技術記事 Smarty でよく使用される変数演算子の概要 Smarty 演算子の概要 この記事では、Smarty でよく使用される変数演算子を要約し、参考として共有します。詳細は以下の通りです: php テンプレートエンジン Smarty...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:10 のトップ PHP マスターの開発原則、10 のトップ PHP マスター_PHP チュートリアル次の記事:10 のトップ PHP マスターの開発原則、10 のトップ PHP マスター_PHP チュートリアル

関連記事

続きを見る