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をインストールする環境: PHPバージョン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
== == ==========================
============== = =========================
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 を実行
============ =====================
皆さん、こんにちは、私の名前は 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 の出力効果:
==================== ========== ========================
テンプレート内の
{assign var="UserName" value="先輩"}
这里将显示模板内部定义的一个变量:UserName = 大师兄
下面的这一行将显示3个checkBox:
语文
数学
外语
下面在这一行将显示3个radio:
语文
数学
外语
下面显示一个月,日, 年选择框:
CopyRight(C) By XiaoJun, Li 2004Áèã ϵ×÷Õß
例 3 は、smarty モジュール内にあるいくつかの関数を使用しており、同様の関数を大家が手動で入手でき、方法を使用して、大家が自分で去れる可能性があります。
例4.模板制御(if / elseif / else/ endif )
================================ =======================
example4.tpl
====================== =================================
{$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输出:
==================================================
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 の倍数の場合、 を出力します。 tr>
プログラムの問題を解決するのは非常に簡単ですが、実装するのは非常に面倒です。
http://www.bkjia.com/PHPjc/317127.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/317127.html

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

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

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

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール
