ホームページ > バックエンド開発 > PHPの問題 > PHP Smartyテンプレートエンジンの使い方は?

PHP Smartyテンプレートエンジンの使い方は?

coldplay.xixi
リリース: 2023-03-01 20:28:02
オリジナル
2381 人が閲覧しました

php Smarty テンプレート エンジンの使用方法: まず、Smarty の公式 Web サイトからダウンロードしてインストールし、次に Smarty クラス ライブラリにメンバーを設定します。最後に、Smarty へのすべてのアクセスを変数に基づいて行うことができます。

PHP Smartyテンプレートエンジンの使い方は?

php Smarty テンプレート エンジンの使用法:

1. 概要:

Smarty は、PHP の多数のテンプレート エンジンの 1 つで、PHP に基づいて作成されたクラス ライブラリです。

Smarty の利点:

1. Web サイトのアクセス速度を最適化;

2. Web フロントエンドの設計とプログラムを分離;

2. Smarty のインストール

1. Smarty の公式 Web サイト http://www.smarty.net/download.php から最新の Smarty バージョンをダウンロードする必要があります。たとえば、ダウンロードされたバージョンは次のとおりです: Smarty-2.6 .18 .tar.tar;

2. Smarty-2.6.18.tar.tar 圧縮パッケージを解凍すると、多くのファイルとフォルダーが見つかります。libs フォルダーを除いて、すべてその他 削除しても無駄です;

3. Smarty テンプレート エンジンを呼び出すときは、まず PHP の require ステートメントを使用して libs/Smarty.class.php ファイルをロードする必要があります。

3. Smarty クラス ライブラリのデフォルト設定

必須 Smarty.class.php ファイルを入力した後、設定を変更する必要がある場合は、 Smarty クラス ライブラリ内でメンバーを設定するには 2 つの方法があります: 1 つは Smarty.class.php ファイル内で直接変更する方法、もう 1 つはクラス ライブラリを初期化した後に再指定する方法、一般的には後者が使用されます。以下は、Smarty クラス ライブラリのメンバー属性について説明します:

1, $template_dir: Web サイトのテンプレート ファイルが保存されるディレクトリを設定します。デフォルトのディレクトリは templates

# です。 ## 2.

$compile_dir: コンパイルされたファイルが Web サイトに保存されるディレクトリを設定します。デフォルトのディレクトリは templates_c

3 です。

$config_dir: ディレクトリを定義しますテンプレートの特別な構成ファイルを保存するために使用されます。ディレクトリ、デフォルトは configs

4、

$left_delimiter: テンプレートの左終端変数に使用され、デフォルトは '{'## です#5、

$right_delimiter

: テンプレート内の右終端変数に使用されます。デフォルトは '}'

4. 変数の使用:

Smarty のすべてのアクセスは変数に基づいており、以下は例を通して説明します。

アイデアの例: メイン ファイルでは、テンプレート初期化構成ファイル (init.inc.php) とクラスを導入し、テンプレート内の変数に値を割り当てて表示します。

まず、Smarty テンプレートの初期設定ファイルとして

init.inc.php

ファイルを設定します <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">init.inc.php &lt;?php define(&amp;#39;ROOT_PATH&amp;#39;, dirname(__FILE__)); //定义网站根目录 require ROOT_PATH.&amp;#39;/libs/Smarty.class.php&amp;#39;; //载入 Smarty 文件 $_tpl = new Smarty(); //实例化一个对象 $_tpl-&gt;template_dir = ROOT_PATH.&amp;#39;/tpl/&amp;#39;; //重新设置模板目录为根目录下的 tpl 目录 $_tpl-&gt;compile_dir = ROOT_PATH.&amp;#39;./com/&amp;#39;; //重新设置编译目录为根目录下的 com 目录 $_tpl-&gt;left_delimiter = &amp;#39;&lt;{&amp;#39;; //重新设置左定界符为 &amp;#39;&lt;{&amp;#39; $_tpl-&gt;right_delimiter = &amp;#39;}&gt;&amp;#39;; //重新设置左定界符为 &amp;#39;}&gt;&amp;#39; ?&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>メインファイル

index.php

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?php require &amp;#39;init.inc.php&amp;#39;; //引入模板初始化文件 require &amp;#39;Persion.class.php&amp;#39;; //载入对象文件 global $_tpl; $title = &amp;#39;This is a title!&amp;#39;; $content = &amp;#39;This is body content!&amp;#39;; /* * 一、从 PHP 中分配给模板变量; * 动态的数据(PHP从数据库或文件,以及算法生成的变量) * 任何类型的数据都可以从PHP分配过来,主要包括如下 * 标量:string、int、double、boolean * 复合:array、object * NULL * 索引数组是直接通过索引来访问的 * 关联数组,不是使用[关联下标]而是使用 . 下标的方式 * 对象是直接通过-&gt;来访问的 * */ $_tpl-&gt;assign(&amp;#39;title&amp;#39;,$title); $_tpl-&gt;assign(&amp;#39;content&amp;#39;,$content); //变量的赋值 $_tpl-&gt;assign(&amp;#39;arr1&amp;#39;,array(&amp;#39;abc&amp;#39;,&amp;#39;def&amp;#39;,&amp;#39;ghi&amp;#39;)); //索引数组的赋值 $_tpl-&gt;assign(&amp;#39;arr2&amp;#39;,array(array(&amp;#39;abc&amp;#39;,&amp;#39;def&amp;#39;,&amp;#39;ghi&amp;#39;),array(&amp;#39;jkl&amp;#39;,&amp;#39;mno&amp;#39;,&amp;#39;pqr&amp;#39;))); //索引二维数组的赋值 $_tpl-&gt;assign(&amp;#39;arr3&amp;#39;,array(&amp;#39;one&amp;#39;=&gt;&amp;#39;111&amp;#39;,&amp;#39;two&amp;#39;=&gt;&amp;#39;222&amp;#39;,&amp;#39;three&amp;#39;=&gt;&amp;#39;333&amp;#39;)); //关联数组的赋值 $_tpl-&gt;assign(&amp;#39;arr4&amp;#39;,array(&amp;#39;one&amp;#39;=&gt;array(&amp;#39;one&amp;#39;=&gt;&amp;#39;111&amp;#39;,&amp;#39;two&amp;#39;=&gt;&amp;#39;222&amp;#39;),&amp;#39;two&amp;#39;=&gt;array(&amp;#39;three&amp;#39;=&gt;&amp;#39;333&amp;#39;,&amp;#39;four&amp;#39;=&gt;&amp;#39;444&amp;#39;))); //关联二维数组的赋值 $_tpl-&gt;assign(&amp;#39;arr5&amp;#39;,array(&amp;#39;one&amp;#39;=&gt;array(&amp;#39;111&amp;#39;,&amp;#39;222&amp;#39;),array(&amp;#39;three&amp;#39;=&gt;&amp;#39;333&amp;#39;,&amp;#39;444&amp;#39;))); //关联和索引混合数组的赋值 $_tpl-&gt;assign(&amp;#39;object&amp;#39;,new Persion(&amp;#39;小易&amp;#39;, 10)); //对象赋值 //Smarty 中数值也可以进行运算(+-*/^……) $_tpl-&gt;assign(&amp;#39;num1&amp;#39;,10); $_tpl-&gt;assign(&amp;#39;num2&amp;#39;,20); $_tpl-&gt;display(&amp;#39;index.tpl&amp;#39;); ?&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>メインファイル

index.php

index.tplのテンプレートファイル(/tpl/ディレクトリに置かれます)<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt; &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;head&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt; &lt;title&gt;&lt;{$title}&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; 变量的访问:&lt;{$content}&gt; &lt;br /&gt; 索引数组的访问:&lt;{$arr1[0]}&gt; &lt;{$arr1[1]}&gt; &lt;{$arr1[2]}&gt; &lt;br /&gt; 索引二维数组的访问: &lt;{$arr2[0][0]}&gt; &lt;{$arr2[0][1]}&gt; &lt;{$arr2[0][2]}&gt; &lt;{$arr2[1][0]}&gt; &lt;{$arr2[1][1]}&gt; &lt;{$arr2[1][2]}&gt; &lt;br /&gt; 关联数组的访问:&lt;{$arr3.one}&gt; &lt;{$arr3.two}&gt; &lt;{$arr3.three}&gt; &lt;br /&gt; 关联二维数组的访问:&lt;{$arr4.one.one}&gt; &lt;{$arr4.one.two}&gt; &lt;{$arr4.two.three}&gt; &lt;{$arr4.two.four}&gt; &lt;br /&gt; 关联和索引混合数组的访问:&lt;{$arr5.one[0]}&gt; &lt;{$arr5.one[1]}&gt; &lt;{$arr5[0].three}&gt; &lt;{$arr5[0][0]}&gt; &lt;br /&gt; 对象中成员变量的访问:&lt;{$object-&gt;name}&gt; &lt;{$object-&gt;age}&gt; &lt;br /&gt; 对象中方法的访问:&lt;{$object-&gt;hello()}&gt; &lt;br /&gt; 变量的运算:&lt;{$num1+$num2}&gt; &lt;br /&gt; 变量的混合运算:&lt;{$num1+$num2*$num2/$num1+44}&gt; &lt;br /&gt; &lt;/body&gt; &lt;/html&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

Persion.class .php

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?php class Persion { public $name; //为了访问方便,设定为public public $age; //定义一个构造方法 public function __construct($name,$age) { $this-&gt;name = $name; $this-&gt;age = $age; } //定义一个 hello() 方法,输出名字和年龄 public function hello() { return &amp;#39;您好!我叫&amp;#39;.$this-&gt;name.&amp;#39;,今年&amp;#39;.$this-&gt;age.&amp;#39;岁了。&amp;#39;; } } ?&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>実行結果:

变量的访问:This is body content!
索引数组的访问:abc def ghi
索引二维数组的访问: abc def ghi jkl mno pqr
关联数组的访问:111 222 333
关联二维数组的访问:111 222 333 444
关联和索引混合数组的访问:111 222 333 444
对象中成员变量的访问:小易 10
对象中方法的访问:您好!我叫小易,今年10岁了。
变量的运算:30
变量的混合运算:94
ログイン後にコピー

関連する学習の推奨事項:
PHP プログラミングの入門から熟練度まで

以上がPHP Smartyテンプレートエンジンの使い方は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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