Smarty サンプル チュートリアル (1) 1. Smarty とは何ですか? smarty は、PHP で書かれたテンプレート エンジンであり、簡単に言うと、PHP プログラマがアーティストに使用することを目的としています。プログラムの論理コンテンツを変更しても、アーティストのページ デザインには影響しません。アーティストによるページの再変更は、プログラムのプログラム ロジックには影響しません。これは、複数人で協力するプロジェクトでは特に重要です。 2. Smarty の利点: 1. 速度: Smarty を使用して作成されたプログラムは、他のテンプレート エンジン テクノロジーと比較して最大の速度向上を実現できます。 2. コンパイル済みタイプ: Smarty で書かれたプログラムは、実行時に非テンプレート テクノロジの PHP ファイルにコンパイルする必要があります。このファイルは、次回テンプレートが作成されるときに、PHP と HTML を組み合わせて使用されます。 3. キャッシュ技術:smartyが選択したキャッシュ技術で、ユーザーが最終的に閲覧するHTMLファイルを静的HTMLページにキャッシュすることができます。 Smarty の属性が true に設定されている場合、ユーザーの WEB リクエストは、smarty によって設定されたキャッシュタイム内でこの静的 HTML ファイルに直接変換されます。これは、静的 HTML ファイルを呼び出すことと同等です。 4. プラグインテクノロジー: Smarty はプラグインをカスタマイズできます。プラグインは実際にはいくつかのカスタム関数です。 5. If/elseif/else/endif をテンプレートで使用できます。テンプレート ファイルで判断ステートメントを使用すると、テンプレートを非常に便利に再フォーマットできます。 3. Smarty の使用に適さない場所: 1. リアルタイムで更新する必要があるコンテンツ。たとえば、頻繁にデータを更新する必要がある株式表示のように、このタイプのプログラムに Smarty を使用すると、テンプレートの処理が遅くなります。 2. 小さなプロジェクト。プロジェクトが単純であるため、アーティストとプログラマーの両方が単純な小規模プロジェクトの場合、smarty を使用すると、迅速な PHP 開発という利点が失われます。 4.smartyクラスをインストールする: smartyをインストールする環境: PHPバージョン4.06以降。 smarty のインストール方法は非常に簡単です。http://samrty.php.net から Smarty.t をダウンロードします。 LIB 内のすべてのファイルを comm ディレクトリにコピーして、基本的なインストールを完了します。 、マニュアルを参照してください。 5. テンプレートでの Smarty の使用: このセクションでは、いくつかの例を通して Smarty の使用について説明します。 Smarty テンプレートは通常、.tpl で識別されます。芸術の便宜上、拡張子を直接 .html として記述する人もいます。これも です。この記事では、smarty の標準的な記述方法を採用しており、smarty テンプレートとして .tpl で表現されています。 PHPコード:---------------------------------------------- -- ---------------------------------- 例 1: まずは簡単な例を見てみましょう。 =============================================== ==== index.tpl ========================================= = ============ {* Smarty 変数識別子の * に含まれるテキストがコメント内容として表示されます *} {include file="header.tpl"}{*ページヘッダー* } みなさん、こんにちは。私の名前は {$name} です。私の Smarty 学習教材をぜひ読んでください。 {include file="foot.tpl"}{*ページの終わり*} 上記の例は tpl テンプレートです。ここで: 1. {**} はテンプレート ページのコメントであり、smarty が解析するときに使用されます。テンプレート 出力は実行されません。テンプレート設計者のみがテンプレートに注釈を付けることができます。 2. {include file="xxx.tpl"} この文を使用して、現在のページにテンプレート ファイルをインクルードします。この例では、Web サイトで一般的な head.tpl と foot.tpl がインクルードされます。これについて考えてみましょう。この文を使用して、xxx.tpl のすべての内容を現在のステートメントにコピーします。もちろん、この文を使用する必要はありません。XXX.tpl の内容を現在の文にコピーしても問題ありません 。 3.{$name}: Smarty のコアコンポーネントであるテンプレート変数は、smarty で定義された左境界文字 {および右境界文字} に含まれており、PHP 変数の形式で与えられます。 Smarty プログラム $smarty- >assign("name", "Li Xiaojun"); テンプレート内の $name を 3 つの単語「Li Xiaojun」に置き換えます。 ソースプログラム全体の例は次のとおりです: ============================== header.tpl ==== ==== ====================
兄貴の賢いチュートリアル ;/頭>
<体>
==============================
foot.tpl
==== == ========================
=========================== =====================
インデックス.tpl
======================== ======================= ======
{* コメント内容として、smarty 変数識別子の * に含まれるテキストが表示されます *}
{include file="header.tpl"}{*ページヘッダー*}
皆さん、こんにちは、私の名前です。 {$name} です。私のスマートな学習教材をぜひ読んでください。
{include file="foot.tpl"}{*ページ終了*}
=============================== = ================
Index.php
============================ == ===================
include_once("./comm/Smarty.class.php"); //smarty クラス ファイルをインクルードします
$ Smarty = new Smarty() //Smarty インスタンス オブジェクトを作成します $smarty using using -コンパイルディレクトリを設定します
--------/// 左右の境界記号。デフォルトは {} ですが、実際のアプリケーションでは JavaScript
// と競合しやすいため、< {} & gt; などを設定することをお勧めします。
//-------------------------------------------- --- -----
$smarty->left_delimiter = "{"; $smarty $smarty 変数置換
// ./templates にあるindex.tpl テンプレートをコンパイルして表示します
$smarty->display( "index.tpl"); ================== ===========
インデックスを実行.php
============== ==================
賢いチュートリアル ;body>
皆さんこんにちは、私の名前は李暁君です。皆さん、私の Smarty 学習教材を読んでください。 martyの例チュートリアル(この例は、これらのパラメーターを使用して、他のパラメーターのみを選択できます。
================================================
exmple2.tpl
============================================= == ==
capitalize}
2. 2 番目の文テンプレート変数 + Li Xiaojun: {$str2|cat:"Li Xiaojun"}
3. 3 番目の文は、現在の日付: {$str3|date_format:"%Y Year %m month %d day"}
4. 4 番目の文は .php プログラムでは処理されず、デフォルト値が表示されます: {$str4|default: "No値! "} 5. 5 番目の文は 8 つの空白文字でインデントし、これら 8 つの空白文字を「*」に置き換えます。 6. 6 番目の文では、すべての TEACHerLI@163.com を小文字に変更します: {$str6| lower}
7. 7 番目の文で、変数の Teacherli を次のように置き換えます。 Li Xiaojun: {$str7|replace:"Teacherli ":"Li Xiaojun"}
8. 8 番目の文は、変数修飾子の組み合わせです。 $str8|capitalize|cat:"これが新しく追加された時刻です:"|date_format:"%Y year %m month %d日"| lower} ================ =
example2.php
============================ ================ ===
include_once("./Smarty.class.php"); //Smarty クラス ファイルをインクルードします
$smarty = new Smarty () //Smarty インスタンス オブジェクトを作成します
を使用してusing ‐ 目次
//------------------------------------------ ------- ------
でも、
//-------------------------------------------- --- ---- s $ SMARTY- & GT; left_delimiter = "{"
$ SMARTY- & GT; //私の名前は Xiao Jun に置き換えます。 , Li.
$smarty->assign("str2", "私の名前は: "); //出力: 私の名前は: Li Xiaojun
$smarty->assign("str3", "AD"); //西暦2004年8月21日(私の現在時刻)を出力
//$smarty->assign("str4", "") / /4番目の文が処理されていない場合はデフォルト値が表示されます。前の文が使用されている場合は、「」に置き換えます
$smarty->assign("str5", ""The first 8 *"); //5 番目の文の出力: * *******最初の 8*
$smarty->assign("str6", "TEACHerLI@163.com"); //Teacherli@163.com がここに出力されます
$smarty->assign(( "str7", "this is Teacherli" ); //これは Li Xiaojun です
$smarty->assign("str8", "HERE IS COMBINING:"); //index.tpl テンプレートの下にコンパイルして表示します。
$ SMARTY->
? & gt;
============= ==============================
Example2.php の出力結果:
===== ======= =========================================
< ;br>
2. 2 番目の文のテンプレート変数 + Li Xiaojun: 私の名前は: Li Xiaojun
3. 3 番目の文は、現在の日付を出力します: 2004 年 8 月 21 日
4. 4 番目の文は、 PHP プログラムで処理されると、デフォルト値「値なし」が表示されます。
5. 5 番目の文は 8 つの空白文字でインデントし、これら 8 つの空白文字を「*」に置き換えます:
********6 番目の文の最初の 8 文字をすべて TEACHerLI@ に変更します。 163.com を小文字にします: Teacherli@163.com
7. 7 番目の文で、変数の Teacherli を次のように置き換えます。 Li Xiaojun: これは李小ジュンです
8. 8 つの文では変数修飾子を使用します。結合: これが新しい時間です: 2004 年 8 月 21 日
& lt;/html & gt; 変数修飾子。これらのパラメーターは、テンプレートへの一連の変更を制御するために使用できます。変数修飾子
修飾子を適用するには「|」と修飾子名を使用し、修飾子のパラメータを区切るには「:」を使用します。変数修飾語は8文目のように組み合わせて使用することができ、実際の運用において柔軟に適用することができます。
例 3.
============================================= == =====
example3.tpl
====================================== == ==========
テンプレート内のいくつかのデフォルト関数 以下のこの段落は、変数 username* を定義するのと同じです。 {assignay var = "username" value = "Master"}
テンプレートによって定義された変数は次のとおりです: username = admin
下の行には 3 が表示されます。 checkBox:< br&gt; {html_checkboxes name = "checkname checked = $ ischecked separator ="&lt; br /&gt; "} 3ラジオはこの行に表示されます。 ️
============================ = ===========
example3.php
================================= = ====================
require_once ("./comm/Smarty.class.php");
$smarty = 新しい F117_Smarty; $smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->config_dir = './configs/';キャッシュ_ディレクトリ = './キャッシュ/';
$smarty->キャッシュ = false
//--------------- -- ------------------------------------------------ -- -----
// {html_checkboxes name="CheckBox" 値=$CheckName selected=$IsChecked 出力=$value separator="
"} を処理しています
//------ -- ------------------------------------------------ -- --------------------------------
$smarty->assign('CheckName', array(
中国語」 ,
1002 => '数学',
1003 => '外国語'));
$smarty->assign('IsChecked ', 1001); ------------------------------------------------- - -------------------------
//処理中 {html_radioes name="RadioBox"values=$RadioNamechecked=$IsCheckedoutput=$value separator= "
"}
//----------------------------------------------- --- --------------------------------------
$smarty->assign( 'RadioName' , array(
1001 1003 => '外国語'));
// ------------- -------------------------------------- ------------------------ -----------------------
//{html_select_date} は加工せずに自動的に出力されます
// ------------ -------------------------------------- ----------- ------------------------
$smarty->display("example3.tpl") ;
?>
smarty サンプル チュートリアル (3)
====================================== =========== ======
Example3.php の出力効果:
======================== =========== ==================
テンプレート内のいくつかのデフォルト関数 body>
{assign var="ユーザー名" value="先輩"}
这里将显示模板内部定义的一个变量:UserName = 大师兄
下面的这一行将显示3个checkBox:
语文
数学
外语
下面在这一行将显示3个radio:
语文
数学
外语
下面显示一个月,日, 年选择框:
January February March April May June July August September October November December 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <名前=「日付_年」を選択>
2004 CopyRight(C) By XiaoJun, Li 2004Áèã ϵ×÷Õß 例 3 は、いくつかのスマート モジュール内にあるいくつかの関数を使用しており、同様の関数を大家が手動で入手でき、方法を使用して、大家が自分で去れる可能性があります。 例4.模板制御(if / elseif / else/ endif ) ================================== ===================== example4.tpl ======================== =============================== モール板内のフロー制御 {assign var="tbColor" value="#D4D0C8"} 色:{$tbColor} {セクション名=ループ ループ=$ニュース} {if $tbColor == "#D4D0C8"} {assign var="tbColor" value="#EEEEEE"} {else $tbColor == "#EEEEEE"} {assign var="tbColor" value="#D4D0C8"} {/if} {$News[loop].newsID} s [ループ].newsTitle} ️ ======================== example4.php ==================== = ================================== require_once ("./public/inc/ F117_Smarty .php"); $smarty = 新しい F117_Smarty; $smarty->template_dir = './templates/'; $smarty->compile_dir = './templates_c/'; $smarty->config_dir = './configs/'; $smarty->cache_dir = './cache/'; $smarty->caching = false; $array[]= array("newsID"=>"001") , "ニュースタイトル"=>"ニュースその1"); $array[]= array("ニュースID"=>"002", "ニュースタイトル"=>"ニュースその2"); [ ]= array("ニュースID"=>"003", "ニュースタイトル"=>"ニュース第3号"); $array[]= array("ニュースID"=>"004", "ニュースタイトル" = >"ニュース 第 4 号"); $array[]= array("ニュース ID"=>"005", "ニュースタイトル"=>"ニュース 第 5 号"); ( "ニュースID"=>"006", "ニュースタイトル"=>"ニュース第6号"); $array[]= array("ニュースID"=>"007", "ニュースタイトル"=>"第7回ニュース"); $array[]= array("ニュースID"=>"008", "ニュースタイトル"=>"ニュース8"); $smarty->assign("ニュース", $ array); $smarty->display("example4.tpl"); smarty サンプル チュートリアル (4) ============= =============================== example4.php 出力: ============ ===================================== < title>テンプレートのフロー制御 002 &lt; td&gt; lt&gt; td&gt; 007 : == " 4D0C8"} ️ tbColor" value="#D4D0C8"} 覚えておいてください。テンプレートの内部変数を設定する定義方法を例 3 に示します。テンプレートに組み込まれたプロセス制御ステートメントを使用すると、プログラムの制御能力が大幅に向上する場合があります。次の例は、phpx.com の友人から尋ねられたものです。誰もが学べるように、例としてここに示します。 例 5: テンプレートに組み込まれたフロー制御ステートメントを使用して、複数セルのコンテンツを 1 行で出力します。これは視覚的にスマートです。 各レコードに出力されるレコードの数: == ========================================== ====== 例5 .tpl ======================================== ======= == html&gt;&lt;&gt;
==================================================== example5.php ==================================================== require_once ("./public/inc/F117_Smarty.php"); $smarty = new F117_Smarty; $smarty->template_dir = './templates/'; $smarty->compile_dir = './templates_c/'; $smarty->config_dir = './configs/'; $smarty->cache_dir = './cache/'; $smarty->caching = false; $array[]= array("newsID"=>"001", "newsTitle"=>"第1条新闻"); $array[]= array("newsID"=>"002", "newsTitle"=>"第2条新闻"); $array[]= array("newsID"=>"003", "newsTitle"=>"第3条新闻"); $array[]= array("newsID"=>"004", "newsTitle"=>"第4条新闻"); $array[]= array("newsID"=>"005", "newsTitle"=>"第5条新闻"); $array[]= array("newsID"=>"006", "newsTitle"=>"第6条新闻"); $array[]= array("newsID"=>"007", "newsTitle"=>"第7条新闻"); $array[]= array("newsID"=>"008", "newsTitle"=>"第8条新闻"); $smarty->assign("News", $array); $smarty->display("example5.tpl"); ?> ================================================== example5.php输出内容: ================================================== 一行输出多条记录 001 第1条新闻 002 第2条新闻 003 第3条新闻 004 第4条新闻 005 第5条新闻 006 第6条新闻 007 第7条新闻 008 お知らせその8 1行目で空白行が出力されないように最適化lt;tr> ですが、プログラムを学ぶには、シンプルにしておくほうがよいでしょう。まず次のように説明します: $smarty.section.loop.index % 4 == 0} . {$News[loop].newsID} .この文: アウト アウト アウト アウト アウト アウト アウト アウトout out out out out out to be s インデックスと呼ばれ、インデックス値を表します。現在のループ 0 から開始して増加し、%4 の後の 0 と比較します。つまり、現在のインデックス値が 4 の倍数である場合、 tr> を出力します。それ以外の場合は、次の部分を実行してください。 プログラムで実装するのが非常に面倒な問題を簡単に解決します 。
上記は、プライベート ライアンの保存の内容を含む、プライベート ライアンの保存のサンプル チュートリアルを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。
声明: この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。