PHPテンプレートエンジンSmarty内蔵変数メディエーターの使い方を詳しく解説

高洛峰
リリース: 2016-12-27 16:00:49
オリジナル
1217 人が閲覧しました

この記事の例では、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:&#39; Happy new year.&#39;}>
ログイン後にコピー

結果は次のとおりです: hello world!!! Happy new year.

4. count_paragraphs

段落数を計算し、変数内の段落数をカウントし、中国語の段落を完全にサポートします。

index.php

$str = <<assign(&#39;str&#39;, $str);
$tpl->display(&#39;index.html&#39;);
ログイン後にコピー

index.html

<{$str|count_paragraphs}>
ログイン後にコピー

結果は: 3

5, count_sentences

文の数を計算し、変数内の文の数をカウントします。注: 英語の文章のみがサポートされており、中国語はサポートされていません。

index.php

$str = <<assign(&#39;str&#39;, $str);
ログイン後にコピー
ログイン後にコピー

index.html

   
<{$str|count_sentences}>
ログイン後にコピー

結果は次のようになります: 2

6, count_words

変数内の単語の数を計算します。

index.php

$str = <<assign(&#39;str&#39;, $str);
ログイン後にコピー
ログイン後にコピー

index.html

<{$str|count_words}>
ログイン後にコピー

結果は次のようになります: 12

7、date_format

日付の書式設定、多くの特定のパラメータがあります。ここでは中国語の日付の例のみを示します。 format

index.php

$tpl->assign(&#39;date&#39;, time()); // 传递时间戳
ログイン後にコピー

index.html

<{$date|date_format:&#39;%Y-%m-%d %H:%M:%S&#39;}>
ログイン後にコピー

結果は次のようになります: 2012-01-26 14:37:22

8、default

Default、デフォルト値を設定します空の変数の場合、変数が空または未割り当ての場合、出力は指定されたデフォルト値に置き換えられます。

index.php

$tpl->assign(&#39;str&#39;, &#39;&#39;); // 赋值给空
ログイン後にコピー

index.html

<{$str|default:&#39;默认输出...&#39;}>、<{$string|default:&#39;没有定义,默认输出...&#39;}>
ログイン後にコピー

結果: デフォルトの出力...、定義なし、デフォルトの出力...

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(&#39;html&#39;, $html); // html
$tpl->assign(&#39;url&#39;, &#39;http://www.google.com.hk&#39;); // url
$tpl->assign(&#39;js&#39;, $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

小文字、変数文字列を小文字にします。

使用法: <{$str| lower}>

12、upper

uppercase、変数を大文字に変更します。

使用法: <{$str|upper}>

13, nl2br

改行文字は

すべての改行文字は に置き換えられます。これは、php の nl2br() 関数と同じです。

14. regex_replace

正規置換、正規表現の検索と置換。構文は preg_replace() と同じです。

index.php

$tpl->assign(&#39;str&#39;, &#39;http://www.google.com&#39;);
ログイン後にコピー

index.html

<{$str|regex_replace:&#39;/go{2}gle/&#39;:&#39;baidu&#39;}>
ログイン後にコピー

結果は次のようになります: http://www.baidu.com

15、replace

Replace、単純な検索と文字列の置換。

16, spacify

スペースの挿入、スペース挿入(名前の通り、この言葉の意味は分かりません^^)は、文字列の各文字の間にスペースや他の文字(文字列)を挿入する方法です。

index.php

$tpl->assign(&#39;str&#39;, &#39;hello world!!!&#39;);
ログイン後にコピー

index.html

<{$str|spacify:"^^"}>
ログイン後にコピー

結果は次のようになります: h^^e^^l^^l^^o^^ ^^w^^o^^r ^ ^l^^d^^!^^!^^!

17. string_format

文字列の書式設定は、10 進数などの浮動小数点数を書式設定する方法です。sprintf 構文を使用します。

index.php

$tpl->assign(&#39;num&#39;, 23.5787446);
ログイン後にコピー

index.html

<{$num|string_format:"%.2f"}>
<{$num|string_format:"%d"}>
ログイン後にコピー

結果は次のとおりです: 23.58、23

18、strip

繰り返されるスペース、改行、タブをすべて単一に置き換えます。

インデックス。 php

$tpl->assign(&#39;str&#39;, "Grandmother of\neight makes\t  hole in one.");
ログイン後にコピー

index.html

<{$str|strip:" "}>
ログイン後にコピー

結果は次のとおりです: 8 人の祖母がホール イン 1 を作ります。

ソース コード:

8 人の祖母がホール イン 1 を作ります。 < と > の間にあるタグ。

index.php

$tpl->assign(&#39;str&#39;, "Google");
ログイン後にコピー

index.html

<{$str|strip_tags}>
ログイン後にコピー

結果は次のようになります: Google (ソースコードもGoogleで、タグとタグが削除されています)

20、truncate

截取,截取字符串开始的一段.默认是80个,你可以指定第二个参数作为在截取的那段字符串后加上什么字符,默认情况下,smarty会截取到一个词的末尾,如果你想要精确的截取多少个字符,把第三个参数改为"true" 。

index.php

$tpl->assign(&#39;str&#39;, &#39;从前有座山,山上有座庙。庙里有一个老和尚和一个小和尚...&#39;);
ログイン後にコピー

index.html

<{$str|truncate:10:&#39;...&#39;:true}>
ログイン後にコピー

   

结果为:从前有座山,山...

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

更多PHP模板引擎Smarty内置变量调解器用法详解相关文章请关注PHP中文网!

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