ホームページ バックエンド開発 PHPチュートリアル Smarty サンプル チュートリアル_PHP チュートリアル

Smarty サンプル チュートリアル_PHP チュートリアル

Jul 21, 2016 pm 04:00 PM
php smarty 1つ 使用 書く それ エンジン チュートリアル はい テンプレート

smarty サンプル チュートリアル (1)
1.smarty とは何ですか?
smarty は、PHP プログラムと外部コンテンツを分離することを目的としています。プログラマがプログラムの論理内容を変更してもアーティストのページのデザインには影響せず、アーティストがページを再変更してもプログラムのプログラム ロジックには影響しません。これは特に複数人で行う場合に当てはまります。重要な協力プロジェクト。

2. Smarty の利点:
1. 速度: Smarty を使用して作成されたプログラムは、他のテンプレート エンジン テクノロジーと比較して最大の速度向上を実現できます。

2. コンパイル済みタイプ: Smarty で書かれたプログラムは、実行時に非テンプレート テクノロジの PHP ファイルにコンパイルする必要があります。このファイルは、次回テンプレートにアクセスするときに、PHP と HTML を組み合わせて WEB リクエストを直接変換します。このファイルでは、テンプレートは再コンパイルされなくなります (ソース プログラムが変更されていない場合)

3. キャッシュ技術: ユーザーが最終的に見る HTML ファイルを静的 HTML にキャッシュできる、smarty が選択したキャッシュ技術ページで、smarty のキャッシュ属性が
true に設定されている場合、ユーザーの WEB リクエストは、smarty によって設定されたキャッシュタイム内でこの静的 HTML ファイルに直接変換されます。これは、静的 HTML ファイルを呼び出すことと同等です。

4. プラグインテクノロジー: Smarty はプラグインをカスタマイズできます。プラグインは実際にはいくつかのカスタム関数です。

5. If/elseif/else/endif をテンプレートで使用できます。テンプレート ファイルで判断ステートメントを使用すると、テンプレートを非常に便利に再フォーマットできます。


3. Smarty が適さない場所:

1. リアルタイムで更新する必要があるコンテンツ。たとえば、頻繁にデータを更新する必要がある株式表示のように、このタイプのプログラムに Smarty を使用すると、テンプレートの処理が遅くなります。

2. 小さなプロジェクト。プロジェクトが単純であるため、アーティストとプログラマーの両方が単純な小規模プロジェクトの場合、smarty を使用すると、迅速な PHP 開発という利点が失われます。

4.smartyクラスをインストールします:

smartyをインストールする環境: PH​​Pバージョン4.06以降。

smartyのインストール方法は非常に簡単で、http://samrty.php.net...からsmarty.tをダウンロード
して、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
== == ==========================



CopyRight(C) by Senior Brother 2004 年 8 月<中央>



============== = =========================
index.tpl
=================== = =================================

{* 表示はsmarty変数識別子の*に含まれるテキストですコンテンツに注釈を付けます *}
{include file="header.tpl"}{*ページ ヘッダー*}
皆さん、こんにちは。私の名前は {$name} です。私の Smarty 学習教材をぜひ読んでください。
{include file="foot.tpl"}{*ページ終了*}

============================== == =================
Index.php
========================== == ====================

include_once("./comm/Smarty.class.php") //smarty クラス ファイルをインクルードします。

$smarty = new Smarty(); //smarty インスタンス オブジェクトを作成します $smarty
$smarty->templates("./templates"); // テンプレート ディレクトリを設定します
$smarty->templates_c(". /templates_c") ; //コンパイルディレクトリを設定します

---------------
// 左右の境界記号、デフォルトは {} ですが、実際のアプリケーションでは競合しやすいですJavaScript
// を使用するため、& lt; {} & gt; などに設定することをお勧めします。
//-------------------------------------------- --- ---- s $ SMARTY- & GT; left_delimiter = "{";
$ SMARTY- & GT; Right_delimiter = "}"; // の下にあるindex.tplテンプレートをコンパイルして表示します。 ./templates
$smarty->display("index.tpl");シ
============================= ===
Index.php を実行
============ =====================
< head>
Big Brother Smarty チュートリアル
皆さん、こんにちは、私の名前は Li Xiaojun です。皆さん、私の Smarty 学習教材を読んでください。 smartyの例(2)
この例は、これらのパラメーターを使用して、他のパラメーターを参照することができます。



============================================= == ==
exmple2.tpl
========================================= === =====
$str1|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 :「価値がない!」}
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 / /コンパイル ディレクトリを設定します

---------- ---
// 左右の境界記号、デフォルトは {} ですが、実際のアプリケーションでは JavaScript と競合しやすいため
// に設定することをお勧めします & {} & gt; ; またはその他。
//-------------------------------------------- --- -----
$smarty->left_delimiter = "{"; $smarty->left_delimiter ."); // str1 を私の名前は Xiao Jun, Li に置き換えます。
$smarty->assign ("str2", "私の名前は:"); //出力: 私の名前は: Li Xiaojun
$smarty->assign("str3", "AD"); //西暦 2004 年 8 月 21 日の出力 (my現在時刻)
//$smarty->assign("str4", ""); //4 番目の文が処理されない場合はデフォルト値が表示されます。前の文が使用されている場合は、" に置き換えられます。 「
********最初の 8*
$smarty-> ("str7", "this is Teacherli"); // テンプレートでは次のように表示されます。 Xiaojun
$smarty->assign("str8", "HERE IS COMBINING:");

// ./templates にあるindex.tplテンプレートをコンパイルして表示します
$smarty->display("example2.tpl =======================================
Example2.php の出力効果:
== ============================================= ==== == & lt;
& lt; タイトル & gt; ブラザー スマーティ & lt; & gt;
1. 最初の文の最初の文は大文字にする必要があります: 私の名前は xiao Jun, Li.
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 つの文では変数修飾子を使用します。 is Combining: これが新しい時間です: 2004 年 8 月 21 日
& lt;/body & gt; 修飾子 (変数修飾子) は、テンプレートへの一連の変更を制御するために使用します。変数修飾子
修飾子を適用するには「|」と修飾子名を使用し、修飾子のパラメータを区切るには「:」を使用します。変数修飾語は8文目のように組み合わせて使用​​することができ、実際の運用において柔軟に適用することができます。



例 3.
========================================== ========
example3.tpl
===================================== = =============
テンプレートのいくつかのデフォルト関数
{*次の段落は、変数 username を定義するのと同じです*} {assignay var = "username" value = "Master"}
ここに変数が定義されています: username = admin

この行には、3 つのチェックボックス: 3 つのラジオ:< が表示されます。 ; br&gt、年、br&gt; ================= ====================
example3.php
======== ================== =============================

require_once ("./comm/Smarty.class.php") ;

$smarty = new F117_Smarty
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/';
$smarty->config_dir = './configs/';
$smarty->caching = false; /---------------- --------------------------------- ----------------- ------------------
//処理中 {html_checkboxes name="CheckBox" value=$CheckNameチェック済み=$IsChecked 出力=$値区切り文字="
//---------------------------- -------------------- ------------------------------ ------------
$smarty->assign( 'CheckName', array(
1001 1003 => $smarty->assign(' IsChecked', 1001);


//------------------------------------- ----------------------------------------------------
//処理中 {html_radioes name=" RadioBox" value=$RadioName selected=$IsChecked Output=$value separator="
"}
//----------------------------------------------- --- --------------------------------------
$smarty->assign( 'RadioName' , array(
1001 1003 => '外国語'));

/ /----------- -------------------------------------- ------------------------ ------------------------
//{html_select_date}は処理せずに自動的に出力されます
/ /----------- -------------------------------------- ----------- ------------------------

$smarty->display("example3.tpl ");
?>

smarty サンプル チュートリアル(3)


================================== ========== ============
example3.php の出力効果:
==================== ========== ========================

テンプレート内の 一部のデフォルト関数< /head>


{assign var="UserName" value="先輩"} 
        这里将显示模板内部定义的一个变量:UserName = 大师兄

        下面的这一行将显示3个checkBox:

        语文

        数学

        外语

        下面在这一行将显示3个radio:

        语文

        数学

        外语

        下面显示一个月,日, 年选择框:

        
      
<名前=「日付_年」を選択>



CopyRight(C) By XiaoJun, Li 2004Áèã ϵ×÷Õß



例 3 は、smarty モジュール内にあるいくつかの関数を使用しており、同様の関数を大家が手動で入手でき、方法を使用して、大家が自分で去れる可能性があります。


例4.模板制御(if / elseif / else/ endif )
================================ =======================
example4.tpl
====================== =================================

モール板内のフロー制御


{assign var="tbColor" value="#D4D0C8"}
色:{$tbColor}


{section name=loop loop=$News}
{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 = 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("example4.tpl");
?> 

smarty实例教程(4) 


==================================================
example4.php输出:
==================================================
  
   模板中的流程控制
   
      

                

             
       
       
                

              
       
       
                

             
       
       
                

              
       
       
                

             
       
       
                

              
       
       



EEEEEE"< ;/table>
< /html & gt;
{if $ tbcolor = = "#d4d0c8"}
& lt; trbcolor = "{$ tbcolor}" & gt;
この 1 つの Statement ブロックで各行の背景色を設定します。{assign var="tbColor" value="# D4D0C8"} 例 3 のテンプレートの内部変数を設定する定義方法であることを覚えておいてください。
テンプレートの組み込みフロー制御ステートメントを使用すると、プログラムの制御能力が大幅に向上する場合があります。次の例は友人から質問されました。例 5: 組み込みテンプレートの使用 プロセス制御ステートメントは、複数のセルの内容を 1 行に出力します。つまり、視覚的には複数のセルが出力されます。レコードごとのレコード:
========================= ==================== ===
example5.tpl
====================== ==================== ======
複数のレコードを 1 行に出力 marty.section.loop.index % 4 == 0 }
t;

{/セクション}
 
001 第1条新闻
002 第2条新闻
003 第3条新闻
004 第4条新闻
005 第5条新闻
006 第6条新闻
{$News[loop].newsTitle}





============================================== =====
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条新闻




説明: 最初の行が空白行を出力しないように最適化することもできますが、プログラムを学習する場合は、シンプルにするため、「This is used」から始めます。
セクション}

} はループセクションを指します。これについては次のセクションで詳しく説明します。文:
{if $smarty.section.loop.index % 4 == 0}
$smarty.section.loop は、$smarty のインスタンス内のセクションセクションに、loop と呼ばれる部分があり、index と呼ばれる属性があることを示します。現在のループのインデックス値を表します。
0 から始まり増加します。%4 の後に配置します。0 と比較します。つまり、現在のインデックス値が 4 の倍数の場合、、そうでない場合は、次の部分を実行します。
プログラムの問題を解決するのは非常に簡単ですが、実装するのは非常に面倒です。



http://www.bkjia.com/PHPjc/317127.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/317127.html

Smarty サンプル チュートリアル (1) 1. Smarty とは何ですか? Smarty は、PHP で書かれたテンプレート PHP テンプレート エンジンです。簡単に言うと、その目的は... です。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

See all articles