


Smarty テンプレート エンジンのカスタマイズされた最小バージョン MinSmarty.class.php ファイルと使用法、smarty テンプレート エンジン_PHP チュートリアル
Jul 12, 2016 am 08:50 AM自定義min版smarty模板引擎MinSmarty.class.php文件及用法,smarty模板引擎
本文實(shí)例講述了自定義的min版smarty模板引擎MinSmarty.class.php文件。分享給大家供大家參考,具體如下:
一、smarty的優(yōu)點(diǎn)
smarty是一個(gè)使用PHP寫出來(lái)的模板引擎,是目前業(yè)界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法,用來(lái)將原本與HTML代碼混雜在一起PHP代碼邏輯分離。簡(jiǎn)單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會(huì)影響到前端人員的頁(yè)面設(shè)計(jì),前端人員重新修改頁(yè)面不會(huì)影響到程序的程序邏輯,這在多人合作的項(xiàng)目中顯的尤為重要。
二、寫一個(gè)簡(jiǎn)單的smarty模版類
具體代碼如下:
<?php class MinSmarty{ // 模版文件的路徑 var $template_dir = "./templates/"; // 模版文件被替換后的文件 命名格式為com_對(duì)應(yīng)的tpl.php var $complie_dir = "./templates_c/"; // 存放變量值 var $tpl_vars = array(); // 這里使用兩個(gè)方法實(shí)現(xiàn)assign 和 display function assign($tpl_var,$var=NULL){ if($tpl_var!=NULL){ $this->tpl_vars[$tpl_var]=$var; } } // 這里編寫display方法的實(shí)現(xiàn) function display($tpl_file){ // 讀取這個(gè)模版文件->替換可以運(yùn)行的php文件(編譯后文件) $tpl_file_path=$this->template_dir.$tpl_file; // 模版文件的路徑 $complie_file_path=$this->complie_dir."com_".$tpl_file.".php"; //編譯后的文件路徑 // 判斷文件是否存在 if(!file_exists($tpl_file_path)){ return false; } // 不讓每次執(zhí)行都生成編譯文件 if(!file_exists($complie_file_path) || filemtime($tpl_file_path)>filemtime($complie_file_path)){ $fp1_file_con=file_get_contents($tpl_file_path); // 獲取模版文件的全部?jī)?nèi)容 // 這里進(jìn)行正則替換把 模版文件中的代碼 {$title} 替換成 <?php echo $this->tpl_vars['title'];? > $pattern=array( '/\{\s*\$([a-zA-Z_][a-zA-Z0-9_]*)\s*\}/i' ); $replace=array( '<?php echo $this->tpl_vars["${1}"];?>' ); $new_str=preg_replace($pattern,$replace,$fp1_file_con); // 替換后的內(nèi)容 file_put_contents($complie_file_path,$new_str); // 替換后的內(nèi)容生成一個(gè)php文件 } // 引入編譯后的文件 include_once("$complie_file_path"); } } ?>
下面的代碼是對(duì)該類的測(cè)試
intro.php代碼如下:
<?php include_once("MySmarty.class.php"); $title="這里是標(biāo)題"; $content="這里是內(nèi)容111111"; $MySmarty=new MySmarty(); $MySmarty->assign("title",$title); $MySmarty->assign("content",$content); $MySmarty->display("intro.tpl"); ?>
模版如下:
intro.tpl:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>{$title}</title> </head> <body> {$content} </body> </html>
PS:這里推薦幾款本站的格式化/美化/轉(zhuǎn)換工具可以幫助你整理雜亂無(wú)章的代碼,相信大家在以后的開發(fā)中能夠用得上:
php代碼在線格式化美化工具:
http://tools.jb51.net/code/phpformat
JavaScript代碼美化/壓縮/格式化/加密工具:
http://tools.jb51.net/code/jscompress
在線XML格式化/壓縮工具:
http://tools.jb51.net/code/xmlformat
JSON代碼格式化美化工具:
http://tools.jb51.net/code/json
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
sql代碼在線格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat
更多關(guān)于Smarty相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《smarty模板入門基礎(chǔ)教程》、《PHP模板技術(shù)總結(jié)》、《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于smarty模板的PHP程序設(shè)計(jì)有所幫助。

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

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

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

Netflix のアバターは、ストリーミング ID を視覚的に表現(xiàn)したものです。ユーザーはデフォルトのアバターを超えて自分の個(gè)性を表現(xiàn)できます。 Netflix アプリでカスタム プロフィール寫真を設(shè)定する方法については、この記事を読み続けてください。 Netflix でカスタム アバターをすばやく設(shè)定する方法 Netflix には、プロフィール寫真を設(shè)定する機(jī)能が組み込まれていません。ただし、ブラウザに Netflix 拡張機(jī)能をインストールすることでこれを行うことができます。まず、Netflix 拡張機(jī)能のカスタム プロフィール畫像をブラウザにインストールします。 Chrome ストアで購(gòu)入できます。拡張機(jī)能をインストールした後、ブラウザで Netflix を開き、アカウントにログインします。右上隅にあるプロフィールに移動(dòng)し、をクリックします

ベン図は、セット間の関係を表すために使用される図です。ベン図を作成するには、matplotlib を使用します。 Matplotlib は、対話型のチャートやグラフを作成するために Python で一般的に使用されるデータ視覚化ライブラリです。インタラクティブな畫像やグラフの作成にも使用されます。 Matplotlib は、チャートやグラフをカスタマイズするための多くの関數(shù)を提供します。このチュートリアルでは、ベン図をカスタマイズするための 3 つの例を説明します。 Example の中國(guó)語(yǔ)訳は次のとおりです: Example これは 2 つのベン図の交差を作成する簡(jiǎn)単な例です。最初に、必要なライブラリをインポートし、ベンをインポートしました。次に、データセットを Python セットとして作成し、その後「venn2()」関數(shù)を使用して

Win11で背景畫像をカスタマイズするにはどうすればよいですか?新しくリリースされた win11 システムには多くのカスタム機(jī)能がありますが、多くの友人はこれらの機(jī)能の使い方を知りません。一部の友人は、背景畫像が比較的単調(diào)だと考えており、背景畫像をカスタマイズしたいと考えていますが、背景畫像をカスタマイズする方法がわかりません。背景畫像を定義する方法がわからない場(chǎng)合、エディターは次の手順をまとめています。 Win11 で背景畫像をカスタマイズするには、以下をご覧ください。 Win11 で背景畫像をカスタマイズする手順: 1. 図に示すように、デスクトップの [勝利] ボタンをクリックし、ポップアップ メニューの [設(shè)定] をクリックします。 2. 図に示すように、設(shè)定メニューに入り、「?jìng)€(gè)人用設(shè)定」をクリックします。 3. 図に示すように、[Personalization] に入り、[Background] をクリックします。 4. 背景設(shè)定を入力し、クリックして寫真を參照します

iPhone の iOS 17 アップデートは、Apple Music にいくつかの大きな変更をもたらします。これには、プレイリストで他のユーザーとコラボレーションしたり、CarPlay を使用してさまざまなデバイスから音楽再生を開始したりすることが含まれます。これらの新機(jī)能の 1 つは、Apple Music でクロスフェードを使用できる機(jī)能です。これにより、トラック間をシームレスに移行できるようになり、複數(shù)のトラックを聴く場(chǎng)合に優(yōu)れた機(jī)能になります。クロスフェードは全體的なリスニング體験を向上させるのに役立ち、トラックが変わったときに驚いたり、體験から脫落したりすることがなくなります。この新機(jī)能を最大限に活用したい場(chǎng)合は、iPhone での使用方法を次に示します。最新の情報(bào)が必要な Apple Music のクロスフェードを有効にしてカスタマイズする方法

CakePHP は、開発者に多くの便利なツールと機(jī)能を提供する強(qiáng)力な PHP フレームワークです。その 1 つはページネーションです。これは、大量のデータを複數(shù)のページに分割し、閲覧と操作を容易にするのに役立ちます。デフォルトでは、CakePHP はいくつかの基本的なページネーション メソッドを提供しますが、場(chǎng)合によってはカスタムのページネーション メソッドを作成する必要がある場(chǎng)合があります。この記事では、CakePHP でカスタム ページネーションを作成する方法を説明します。ステップ 1: カスタム ページネーション クラスを作成する まず、カスタム ページネーション クラスを作成する必要があります。これ

Eclipse でショートカット キーの設(shè)定をカスタマイズするにはどうすればよいですか?開発者にとって、ショートカット キーをマスターすることは、Eclipse でコーディングする際の効率を向上させるための鍵の 1 つです。強(qiáng)力な統(tǒng)合開発環(huán)境として、Eclipse は多くのデフォルトのショートカット キーを提供するだけでなく、ユーザーが獨(dú)自の好みに応じてショートカット キーをカスタマイズすることもできます。この記事では、Eclipseでショートカットキーの設(shè)定をカスタマイズする方法と具體的なコード例を紹介します。 Eclipseを開く まず、Eclipseを開いて次のように入力します。

CodeIgniter でカスタム ミドルウェアを?qū)g裝する方法 はじめに: 最新の Web 開発では、ミドルウェアがアプリケーションで重要な役割を果たします。これらは、リクエストがコントローラーに到達(dá)する前または後に、共有処理ロジックを?qū)g行するために使用できます。 CodeIgniter は、人気のある PHP フレームワークとして、ミドルウェアの使用もサポートしています。この記事では、CodeIgniter でカスタム ミドルウェアを?qū)g裝する方法を紹介し、簡(jiǎn)単なコード例を示します。ミドルウェアの概要: ミドルウェアは一種のリクエストです

1. 下の図はediusのデフォルトの畫面レイアウトです EDIUSのデフォルトのウィンドウレイアウトは橫レイアウトのため、シングルモニタ環(huán)境では多くのウィンドウが重なってプレビューウィンドウがシングルウィンドウモードになります。 2. メニューバーの[表示]から[デュアルウィンドウモード]を有効にすると、プレビューウィンドウに再生ウィンドウと録音ウィンドウを同時(shí)に表示できます。 3. [表示メニューバー > ウィンドウレイアウト > 一般] でデフォルトの畫面レイアウトに戻すことができます。また、ウィンドウをドラッグして好みのレイアウトにし、[表示 > ウィンドウ レイアウト > 現(xiàn)在のレイアウトを保存 > 新規(guī)作成] をクリックすると、自分に合ったレイアウトをカスタマイズして、よく使う畫面レイアウトとして保存することもできます。ポップアップ [現(xiàn)在のレイアウトを保存] レイアウト] 小さなウィンドウにレイアウト名を入力し、OK をクリックします
