この記事の例では、PHP テンプレート エンジン Smarty の組み込み変数メディエーターの使用方法について説明します。詳細は次のとおりです: Smarty の変数メディエーターは関数に相当します: パラメーターがある場合は、その直後にメディエーター関数名が続きます。を「:」の後に追加する必要があります。複数のパラメータがある場合は、それらを合計するだけです。
以下では、Smarty の組み込み変数メディエーターを紹介します:
1. 大文字にする
変数内のすべての単語の最初の文字を大文字にします。パラメーター値は、数字を含む単語の最初の単語を大文字にするかどうかを決定するブール型です。デフォルトは大文字ではありません
index.php
$tpl->assign('str', 'hello world wor2ld!!!'); $tpl->display('index.html');
index.html (テンプレートファイル)
<{$str|capitalize}> <{$str|capitalize:true}>
結果は次のようになります: Hello World wor2ld!!!, Hello World Wor2Ld!!!
2, count_characters
数字を数えます変数内の文字の数を指定すると、メディエータはデフォルトでスペース (スペース、タブ、キャリッジ リターンなど) をカウントせず、文字数のみをカウントします。パラメータ true を追加すると、スペースも考慮されます。数えられる。
index.html
<{$str|count_characters}> // 不计算空格 <{$str|count_characters:true}> // 计算空格
結果は: 13, 14
3, cat
文字列を接続し、cat の値を指定された変数に接続します。
<{$str|cat:' Happy new year.'}>
結果は次のとおりです: hello world!!! Happy new year.
4. count_paragraphs
段落数を計算し、変数内の段落数をカウントし、中国語の段落を完全にサポートします。
index.php
$str = <<assign('str', $str); $tpl->display('index.html');
index.html
<{$str|count_paragraphs}>
結果は: 3
5, count_sentences
文の数を計算し、変数内の文の数をカウントします。注: 英語の文章のみがサポートされており、中国語はサポートされていません。
index.php
$str = <<assign('str', $str);
index.html
<{$str|count_sentences}>
結果は次のようになります: 2
6, count_words
変数内の単語の数を計算します。
index.php
$str = <<assign('str', $str);
index.html
<{$str|count_words}>
結果は次のようになります: 12
7、date_format
日付の書式設定、多くの特定のパラメータがあります。ここでは中国語の日付の例のみを示します。 format
index.php
$tpl->assign('date', time()); // 传递时间戳
index.html
<{$date|date_format:'%Y-%m-%d %H:%M:%S'}>
結果は次のようになります: 2012-01-26 14:37:22
8、default
Default、デフォルト値を設定します空の変数の場合、変数が空または未割り当ての場合、出力は指定されたデフォルト値に置き換えられます。
index.php
$tpl->assign('str', ''); // 赋值给空
index.html
<{$str|default:'默认输出...'}>、<{$string|default:'没有定义,默认输出...'}>
結果: デフォルトの出力...、定義なし、デフォルトの出力...
9、エスケープ
トランスコーディング、使用HTML トランスコーディング、URL トランスコーディング、トランスコーディングを行わない変数の一重引用符の変換、16 進トランスコーディング、16 進整形、または JavaScript トランスコーディングの場合、デフォルトは HTML トランスコーディングです
index.php
$html = <<Google html; $js = << for (var i=0; i<100; i++) { window.alert(i); } js; $tpl->assign('html', $html); // html $tpl->assign('url', 'http://www.google.com.hk'); // url $tpl->assign('js', $js); // javascript
index.html
HTML 转码:<{$html|escape:"html"}> URL 转码:<{$url|escape:"url"}> JS 转码:<{$js|escape:"javascript"}>
結果は次のようになります:
HTML 转码:Google URL 转码:http%3A%2F%2Fwww.google.com.hk JS 转码:
10, indent
インデント、各行は文字列をインデントします。最初のパラメータは文字列をインデントする文字数を指定します。デフォルトは 4 文字です。インデントを置き換えるために使用します。
11. lower
小文字、変数文字列を小文字にします。
使用法: a6217669b6f8d3aad77b14db13c00bad
12、upper
uppercase、変数を大文字に変更します。
使用法: 98cba6331cf99290e107dcab961d573a
13, nl2br
改行文字は
すべての改行文字は に置き換えられます。これは、php の nl2br() 関数と同じです。
14. regex_replace
正規置換、正規表現の検索と置換。構文は preg_replace() と同じです。
index.php
$tpl->assign('str', 'http://www.google.com');
index.html
<{$str|regex_replace:'/go{2}gle/':'baidu'}>
結果は次のようになります: http://www.baidu.com
15、replace
Replace、単純な検索と文字列の置換。
16, spacify
スペースの挿入、スペース挿入(名前の通り、この言葉の意味は分かりません^^)は、文字列の各文字の間にスペースや他の文字(文字列)を挿入する方法です。
index.php
$tpl->assign('str', 'hello world!!!');
index.html
<{$str|spacify:"^^"}>
結果は次のようになります: h^^e^^l^^l^^o^^ ^^w^^o^^r ^ ^l^^d^^!^^!^^!
17. string_format
文字列の書式設定は、10 進数などの浮動小数点数を書式設定する方法です。sprintf 構文を使用します。
index.php
$tpl->assign('num', 23.5787446);
index.html
<{$num|string_format:"%.2f"}> <{$num|string_format:"%d"}>
結果は次のとおりです: 23.58、23
18、strip
繰り返されるスペース、改行、タブをすべて単一に置き換えます。
インデックス。 php
$tpl->assign('str', "Grandmother of\neight makes\t hole in one.");
index.html
<{$str|strip:" "}>
結果は次のとおりです: 8 人の祖母がホール イン 1 を作ります。
ソース コード:
8 人の祖母がホール イン 1 を作ります。 36eca8458427019e813426bb05959531 の間にあるタグ。
index.php
$tpl->assign('str', "Google");
index.html
<{$str|strip_tags}>
結果は次のようになります: Google (ソースコードもGoogleで、タグとタグが削除されています)
20、truncate
截取,截取字符串开始的一段.默认是80个,你可以指定第二个参数作为在截取的那段字符串后加上什么字符,默认情况下,smarty会截取到一个词的末尾,如果你想要精确的截取多少个字符,把第三个参数改为"true" 。
index.php
$tpl->assign('str', '从前有座山,山上有座庙。庙里有一个老和尚和一个小和尚...');
index.html
<{$str|truncate:10:'...':true}>
结果为:从前有座山,山...
希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。
更多PHP模板引擎Smarty内置变量调解器用法详解相关文章请关注PHP中文网!