Heim Backend-Entwicklung PHP-Tutorial php Smarty 模板使用方法详解_PHP教程

php Smarty 模板使用方法详解_PHP教程

Jul 22, 2016 am 09:02 AM
php smarty web eins 使用方法 文件 模板 注释 详解 passieren

一、模板中的注释


每一个Smarty模板文件,都是通过Web前台语言(xhtml,css和javascript等)结合Smarty引擎的语法开发的。


 用到的web前台开发的语言和原来的完全一样,注释也没有变化


      Smarty注释语法是'左结束符变量值*'和'*右结束符变量值',在这两个定界符之间的内容都是注释内容,可以包含一行或多行,并且用户浏览网页查看原代码时不会看到注释,它只是模板内在的注释,以下是注释小例子。


    $smarty->left_lelimiter = '

      $smarty->right_delimiter = '}>';

      注释:

 代码如下 复制代码

   $smarty->left_lelimiter = '

      $smarty->right_delimiter = '}>';

      注释:   

二:模板中变量声明


      在Smarty中一切以变量为主,所有的呈现逻辑都让模板自行控制


      有几种不同类型的变量,变量的类型取决于它的前缀是什么符号或者被什么符号包围


      变量可以直接被输出或者作业函数属性和修饰符的参数或者用于内部的条件表达式等


     


     


     


     如果在Smarty模板中输出从php中分配的变量,需要在变量前面加$符号并用定界符将它括起来,命名方式和php的变量命名方式一样,并且定界标示符号又有点像是php中的(事实上它们确实会被替换成这个)


三:模板中输出从php分配的变量


     在Smarty模板中经常使用的变量有两种:一是从php中分配的变量;另一种是从配置文件中读取的变量


     注意:模板中只能输出从php中分配的变量,不能在模板中为这些变量重新赋值,变量都是全域的,只要分配一次就可以了,如果分配两次以上的话,变量内容会以最后分配的为主


     Smarty中提供的foreach或section语句用于遍历输出数组中的每个元素,索引数组和关联数组在模板中输出的方式略有不同,索引数组在模板中的访问方式和在php脚本中的引用是一样的,关联数组中元素在模板中指定的方式是使用'.'访问的。

在模板中访问对象和php脚本中的方式一样,都是通过'->'这个运算符完成的。


四:Smarty 模板中变量的数学计算

     在模板中变量不能直接赋值,但可以参与数学运算,只要在php脚本中可以执行的数学运算都可以在模板中应用,如下所示:

 

 


    


     bar - $bar[1] * $foo->bar - 3 * 7}>


    

 代码如下 复制代码

   


    


     bar - $bar[1] * $foo->bar - 3 * 7}>


    


     在Smarty模板中可以识别嵌入在双引号中的变量,但有的变量必须用反引号'`'(此符号和'~'在同一个键上)包住,如下所示:

 代码如下 复制代码


    


    


    


 


    


    

第1步:加载Smarty模板引擎,如:require 'libs/Smarty.class.php'


第2步:创建Smarty对象,如:$smarty = new Smarty();


第3步:修改Smarty默认行为,如:开启缓存、模板的存放路径等


第4步:将程序中取得的数据通过Smarty对象的assign()方法赋值给模板中相应的变量


第5步:用Smarty对象的display()方法将模板内容输出


assign()方法


   这个方法用来给模板中的变量赋值,使用比较容易


    原型:void assign(string varname,mixed var)


    这个方法可以将php所支持的类型数据赋值给模板变量包含数组和对象


    使用方式有如下两种

 //指定一对'名称/数值'
    $smarty->assign('question','你好吗');
    $smarty->assign('answer','不怎么好');


    //指定包含'名称/数值'
    $smarty->assign(array('question' => '你好吗','answer' => '不怎么好'));//这种方式比较少用
display()方法


    基于Smarty的脚本中必须用到这个方法,而且一个脚本中只能使用一次,它负责获取和显示由Smarty引擎引用的模板


    原型:var display(string template[,string cache_id][,string compile_id])


    参数一:template是必选的,指定一个合法的模板资源的类型和路径


    参数二:cache_id指定一个缓存标识符的名称


    参数三:compile_id在维护一个页面多个缓存时使用


    使用方法如下
    $smarty->display('tpl/template_dir/template.html');


简单实例

       1、libs:是Smarty类库


       2、tpl/cache_dir:存放缓存模板


       3、tpl/compile_dir:存放编译后模板文件

       4、tpl/config_dir:存放特殊配置文件

       5、tpl/template_dir:存放模板文件

       6、smarty.php文件里 new 出了一个 Smarty类对象,并设定各对象的属性值,如下代码

   


                require 'libs/Smarty.class.php';//加载Smarty.class.php文件               


                define('SITE_ROOT','./tpl/');//定义一个常量

                $tpl = new Smarty();


                $tpl->template_dir = SITE_ROOT . 'template_dir';//存模板文件   


                $tpl->compile_dir = SITE_ROOT . 'compile_dir';//存编译过的模板文件


                $tpl->config_dir = SITE_ROOT . 'config_dir';//存特殊配置文件


                $tpl->cache_dir = SITE_ROOT . 'cache_dir';//存Smarty缓存文件   


                $tpl->caching = 1;//启用缓存


                $tpl->cache_lifetime = 60*60*24;//缓存时间1天   


                $tpl->left_delimiter = '


                $tpl->right_delimiter = '}>';//右结束符

 代码如下 复制代码

        


                require 'libs/Smarty.class.php';//加载Smarty.class.php文件               


                define('SITE_ROOT','./tpl/');//定义一个常量

                $tpl = new Smarty();


                $tpl->template_dir = SITE_ROOT . 'template_dir';//存模板文件   


                $tpl->compile_dir = SITE_ROOT . 'compile_dir';//存编译过的模板文件


                $tpl->config_dir = SITE_ROOT . 'config_dir';//存特殊配置文件


                $tpl->cache_dir = SITE_ROOT . 'cache_dir';//存Smarty缓存文件   


                $tpl->caching = 1;//启用缓存


                $tpl->cache_lifetime = 60*60*24;//缓存时间1天   


                $tpl->left_delimiter = '


                $tpl->right_delimiter = '}>';//右结束符

7、index.php文件 首页代码如下


                 require 'smarty.php';


                $tpl->assign('title','title测试');


                $tpl->assign('content','content测试');


                $tpl->display('template.html');

 代码如下 复制代码

      


                 require 'smarty.php';


                $tpl->assign('title','title测试');


                $tpl->assign('content','content测试');


                $tpl->display('template.html');

8、tpl/template_dir/template.html 这是一个模板文件 代码如下

                    


               

               


                   


                       

<p><br>                             </p> <p><br>                         </p>


               


               


                       


               


 

 

 代码如下 复制代码

                        


               

               


                   


                       

<p><br>                             </p> <p><br>                         </p>


               


               


                       


               


 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/371918.htmlTechArticle一、模板中的注释 每一个Smarty模板文件,都是通过Web前台语言(xhtml,css和javascript等)结合Smarty引擎的语法开发的。 用到的web前台开发的语言...
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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

CakePHP-Protokollierung CakePHP-Protokollierung Sep 10, 2024 pm 05:26 PM

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP-Dienste CakePHP-Dienste Sep 10, 2024 pm 05:26 PM

Dieses Kapitel befasst sich mit den Informationen zum Authentifizierungsprozess, der in CakePHP verfügbar ist.

See all articles