Inhaltsverzeichnis
自定义min版smarty模板引擎MinSmarty.class.php文件及用法,smarty模板引擎
Heim Backend-Entwicklung PHP-Tutorial 自定义min版smarty模板引擎MinSmarty.class.php文件及用法,smarty模板引擎_PHP教程

自定义min版smarty模板引擎MinSmarty.class.php文件及用法,smarty模板引擎_PHP教程

Jul 12, 2016 am 08:50 AM
smarty 模板引擎 自定义

自定义min版smarty模板引擎MinSmarty.class.php文件及用法,smarty模板引擎

本文实例讲述了自定义的min版smarty模板引擎MinSmarty.class.php文件。分享给大家供大家参考,具体如下:

一、smarty的优点

smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

二、写一个简单的smarty模版类

具体代码如下:

<&#63;php
 class MinSmarty{
 // 模版文件的路径
 var $template_dir = "./templates/";
 // 模版文件被替换后的文件 命名格式为com_对应的tpl.php
 var $complie_dir = "./templates_c/";
 // 存放变量值
 var $tpl_vars = array();
 // 这里使用两个方法实现assign 和 display
 function assign($tpl_var,$var=NULL){
  if($tpl_var!=NULL){
  $this->tpl_vars[$tpl_var]=$var;
  }
 }
 // 这里编写display方法的实现
 function display($tpl_file){
  // 读取这个模版文件->替换可以运行的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;
  }
  // 不让每次执行都生成编译文件
  if(!file_exists($complie_file_path) || filemtime($tpl_file_path)>filemtime($complie_file_path)){
  $fp1_file_con=file_get_contents($tpl_file_path); // 获取模版文件的全部内容
  // 这里进行正则替换把  模版文件中的代码 {$title} 替换成 <&#63;php echo $this->tpl_vars['title'];&#63; >
  $pattern=array(
     '/\{\s*\$([a-zA-Z_][a-zA-Z0-9_]*)\s*\}/i'
  );
  $replace=array(
     '<&#63;php echo $this->tpl_vars["${1}"];&#63;>'
  );
  $new_str=preg_replace($pattern,$replace,$fp1_file_con);  // 替换后的内容
  file_put_contents($complie_file_path,$new_str);  // 替换后的内容生成一个php文件
  }
  // 引入编译后的文件
  include_once("$complie_file_path");
 }
 }
&#63;>
Nach dem Login kopieren

下面的代码是对该类的测试

intro.php代码如下:

<&#63;php
  include_once("MySmarty.class.php");
  $title="这里是标题";
  $content="这里是内容111111";
  $MySmarty=new MySmarty();
  $MySmarty->assign("title",$title);
  $MySmarty->assign("content",$content);
  $MySmarty->display("intro.tpl");
&#63;>

Nach dem Login kopieren

模版如下:

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>

Nach dem Login kopieren

PS:这里推荐几款本站的格式化/美化/转换工具可以帮助你整理杂乱无章的代码,相信大家在以后的开发中能够用得上:

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互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

sql代码在线格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat

更多关于Smarty相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1133123.htmlTechArticle自定义min版smarty模板引擎MinSmarty.class.php文件及用法,smarty模板引擎 本文实例讲述了自定义的min版smarty模板引擎MinSmarty.class.php文件。分享给...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So richten Sie schnell einen benutzerdefinierten Avatar in Netflix ein So richten Sie schnell einen benutzerdefinierten Avatar in Netflix ein Feb 19, 2024 pm 06:33 PM

Ein Avatar auf Netflix ist eine visuelle Darstellung Ihrer Streaming-Identität. Benutzer können über den Standard-Avatar hinausgehen, um ihre Persönlichkeit auszudrücken. Lesen Sie diesen Artikel weiter, um zu erfahren, wie Sie in der Netflix-App ein benutzerdefiniertes Profilbild festlegen. So legen Sie schnell einen benutzerdefinierten Avatar in Netflix fest. In Netflix gibt es keine integrierte Funktion zum Festlegen eines Profilbilds. Sie können dies jedoch tun, indem Sie die Netflix-Erweiterung in Ihrem Browser installieren. Installieren Sie zunächst ein benutzerdefiniertes Profilbild für die Netflix-Erweiterung in Ihrem Browser. Sie können es im Chrome Store kaufen. Öffnen Sie nach der Installation der Erweiterung Netflix in Ihrem Browser und melden Sie sich bei Ihrem Konto an. Navigieren Sie zu Ihrem Profil in der oberen rechten Ecke und klicken Sie

So passen Sie das Hintergrundbild in Win11 an So passen Sie das Hintergrundbild in Win11 an Jun 30, 2023 pm 08:45 PM

Wie kann ich das Hintergrundbild in Win11 anpassen? Im neu veröffentlichten Win11-System gibt es viele benutzerdefinierte Funktionen, aber viele Freunde wissen nicht, wie sie diese Funktionen verwenden sollen. Einige Freunde denken, dass das Hintergrundbild relativ eintönig ist und möchten das Hintergrundbild anpassen, wissen aber nicht, wie man das Hintergrundbild anpasst. Wenn Sie nicht wissen, wie Sie das Hintergrundbild definieren, hat der Editor die Schritte dazu zusammengestellt Passen Sie das Hintergrundbild in Win11 unten an. Wenn Sie interessiert sind, schauen Sie sich unten um. Schritte zum Anpassen von Hintergrundbildern in Win11: 1. Klicken Sie auf dem Desktop auf die Schaltfläche „Win“ und dann im Popup-Menü auf „Einstellungen“, wie in der Abbildung dargestellt. 2. Rufen Sie das Einstellungsmenü auf und klicken Sie auf Personalisierung, wie in der Abbildung gezeigt. 3. Geben Sie „Personalisierung“ ein und klicken Sie auf „Hintergrund“, wie im Bild gezeigt. 4. Geben Sie die Hintergrundeinstellungen ein und klicken Sie, um Bilder zu durchsuchen

Wie erstelle und passe ich Venn-Diagramme in Python an? Wie erstelle und passe ich Venn-Diagramme in Python an? Sep 14, 2023 pm 02:37 PM

Ein Venn-Diagramm ist ein Diagramm zur Darstellung von Beziehungen zwischen Mengen. Um ein Venn-Diagramm zu erstellen, verwenden wir Matplotlib. Matplotlib ist eine häufig verwendete Datenvisualisierungsbibliothek in Python zum Erstellen interaktiver Diagramme und Grafiken. Es wird auch zum Erstellen interaktiver Bilder und Diagramme verwendet. Matplotlib bietet viele Funktionen zum Anpassen von Diagrammen und Grafiken. In diesem Tutorial veranschaulichen wir drei Beispiele zum Anpassen von Venn-Diagrammen. Die chinesische Übersetzung von Beispiel lautet: Beispiel Dies ist ein einfaches Beispiel für die Erstellung der Schnittmenge zweier Venn-Diagramme. Zuerst haben wir die erforderlichen Bibliotheken importiert und Venns importiert. Dann erstellen wir den Datensatz als Python-Set und verwenden anschließend die Funktion „venn2()“ zum Erstellen

So passen Sie die Tastenkombinationseinstellungen in Eclipse an So passen Sie die Tastenkombinationseinstellungen in Eclipse an Jan 28, 2024 am 10:01 AM

Wie kann ich die Tastenkombinationseinstellungen in Eclipse anpassen? Als Entwickler ist die Beherrschung von Tastenkombinationen einer der Schlüssel zur Effizienzsteigerung beim Codieren in Eclipse. Als leistungsstarke integrierte Entwicklungsumgebung bietet Eclipse nicht nur viele Standard-Tastenkombinationen, sondern ermöglicht Benutzern auch, diese nach ihren eigenen Vorlieben anzupassen. In diesem Artikel wird erläutert, wie Sie die Tastenkombinationseinstellungen in Eclipse anpassen, und es werden spezifische Codebeispiele gegeben. Öffnen Sie Eclipse. Öffnen Sie zunächst Eclipse und geben Sie ein

So aktivieren und passen Sie Überblendungen in Apple Music auf dem iPhone mit iOS 17 an So aktivieren und passen Sie Überblendungen in Apple Music auf dem iPhone mit iOS 17 an Jun 28, 2023 pm 12:14 PM

Das iOS 17-Update für das iPhone bringt einige große Änderungen für Apple Music. Dazu gehört die Zusammenarbeit mit anderen Benutzern an Playlists, das Starten der Musikwiedergabe von verschiedenen Geräten bei Verwendung von CarPlay und mehr. Eine dieser neuen Funktionen ist die Möglichkeit, Überblendungen in Apple Music zu verwenden. Dadurch können Sie nahtlos zwischen den Titeln wechseln, was beim Anhören mehrerer Titel eine tolle Funktion ist. Crossfading trägt dazu bei, das Hörerlebnis insgesamt zu verbessern und stellt sicher, dass Sie nicht erschrecken oder aus dem Hörerlebnis aussteigen, wenn der Titel wechselt. Wenn Sie diese neue Funktion optimal nutzen möchten, erfahren Sie hier, wie Sie sie auf Ihrem iPhone verwenden. So aktivieren und passen Sie Crossfade für Apple Music an. Sie benötigen die neueste Version

Wie erstelle ich eine benutzerdefinierte Paginierung in CakePHP? Wie erstelle ich eine benutzerdefinierte Paginierung in CakePHP? Jun 04, 2023 am 08:32 AM

CakePHP ist ein leistungsstarkes PHP-Framework, das Entwicklern viele nützliche Tools und Funktionen bietet. Eine davon ist die Paginierung, die uns hilft, große Datenmengen auf mehrere Seiten aufzuteilen und so das Durchsuchen und Bearbeiten zu erleichtern. Standardmäßig stellt CakePHP einige grundlegende Paginierungsmethoden bereit, aber manchmal müssen Sie möglicherweise einige benutzerdefinierte Paginierungsmethoden erstellen. In diesem Artikel erfahren Sie, wie Sie in CakePHP eine benutzerdefinierte Paginierung erstellen. Schritt 1: Erstellen Sie eine benutzerdefinierte Paginierungsklasse. Zuerst müssen wir eine benutzerdefinierte Paginierungsklasse erstellen. Das

So implementieren Sie benutzerdefinierte Middleware in CodeIgniter So implementieren Sie benutzerdefinierte Middleware in CodeIgniter Jul 29, 2023 am 10:53 AM

So implementieren Sie benutzerdefinierte Middleware in CodeIgniter Einführung: In der modernen Webentwicklung spielt Middleware eine wichtige Rolle in Anwendungen. Sie können verwendet werden, um eine gemeinsame Verarbeitungslogik auszuführen, bevor oder nachdem die Anforderung den Controller erreicht. CodeIgniter unterstützt als beliebtes PHP-Framework auch den Einsatz von Middleware. In diesem Artikel wird die Implementierung benutzerdefinierter Middleware in CodeIgniter vorgestellt und ein einfaches Codebeispiel bereitgestellt. Middleware-Übersicht: Middleware ist eine Art Anfrage

Renderfunktion in Vue3: benutzerdefinierte Rendering-Funktion Renderfunktion in Vue3: benutzerdefinierte Rendering-Funktion Jun 18, 2023 pm 06:43 PM

Vue ist ein beliebtes JavaScript-Framework, das viele praktische Funktionen und APIs bereitstellt, um Entwicklern beim Erstellen interaktiver Front-End-Anwendungen zu helfen. Mit der Veröffentlichung von Vue3 ist die Renderfunktion zu einem wichtigen Update geworden. In diesem Artikel werden das Konzept und der Zweck der Renderfunktion in Vue3 sowie deren Verwendung zum Anpassen der Renderfunktion vorgestellt. Was ist die Renderfunktion? In Vue ist die Vorlage die am häufigsten verwendete Rendermethode, aber in Vue3 können Sie eine andere Methode verwenden: r

See all articles