Smarty模板引擎

模板引擎的作用是什么

對PHP語言熟悉的程序員就會知道有個Smarty的名詞,那么這個具體是什么呢?smarty是一個使用PHP編寫的PHP模板引擎,是目前業務最著名,功能最強大的一種PHP模板引擎,程序邏輯邏輯與外在內容的分離,簡單的講就是讓PHP和HTML相分離,讓程序員和美工同時進行開發,使的程序員改變程序的邏輯內容時不會影響到美工的頁面設計,美工重新修改頁面時不會影響到程序的程序邏輯。

官網地址

Smarty

文件目錄

粗略的看一下幾個主要文件目錄,根目錄下有個demo文件夾,里面放的就是使用smarty的一些例子,那么還有一個libs文件夾,里面放置的是smarty類文件,其中Smarty.class.php就是模板引擎的主文件,那么用的時候就是引入這個主文件進行實例化然后操作,plugins這個目錄放置的是smarty的插件,其它目錄有興趣的下去了解一下。

Smarty的引入與實例化

將Smarty的demo文件和主要類文件提出來

<?php
require_once '/smarty/Smarty.class.php';
$smarty = new Smarty();

Smarty的配置

1、五配置

$smarty->left_delimiter = '{';//左定界符
$smarty->right_delimiter = '}';//右定界符
$smarty->template_dir = 'tpl';//html模板的地址
$smarty->compile_dir = 'template_c';//模板編譯生成的文件
$smarty->cache_dir = 'cache';//緩存
$smarty->caching = true;//開啟緩存
$smarty->cache_lifetime = 120;//緩存時間

在模板里面出現{}那么里面的任何語句都交給smarty去處理,在根目錄下創建三個目錄。

2、常用兩方法

//模板變量賦值
$smarty->assign('變量名','變量值');
//展示模板
$smarty->display('test.html');

Smarty基本語法

//模板變量賦值
$arr = array('title'=>'網站標題','content'=>'網站內容');
$smarty->assign('arr',$arr);
//模板變量取值
{$arr.content} OR {$arr['content']}

Smarty變量調節器(相當于函數)

手冊

1、單詞首字母大寫

$smarty->assign('str','hello word');
{$str|capitalize}

2、字符串連接

$smarty->assign('str','hello word');
{$str|cat:' gsy'}

3、日期格式化

$smarty->assign('date',time());
{$date|date_format}

4、為未賦值或為空的變量指定默認值

$smarty->assign('data');
{$data|default:'apple'|capitalize}

5、轉碼 escape 用于html轉碼,在沒有轉碼的變量上轉換單引號,十六進制轉碼,十六進制美化,或者javascript轉碼,默認是html轉碼

$smarty->assign('url','https://www.smarty.net/docs/zh_CN/language.modifier.escape.tpl');
{$url|escape:'url'}

為什么要對url轉碼?因為在程序里面有很多符號會影響到PHP等等腳本語言的正常運轉。
6、轉換大小寫

$smarty->assign('str','Happy New Year');
{$str|lower}
{$str|upper}

7、將所有換行符替換成HTML標簽

$smarty->assign('str',"Happy New Year\nHappy New Year\nHappy New Year");
{$str|nl2br}

條件判斷句式

1、常用的條件修飾符

eq(==)
neq(!=)
gt(>)
lt(<)

2、基本句式

{if $name eq 'gsy'}
Hello gsy
{elseif $name eq 'wyx'}
Hello wyx
{else}
Hello
{/if}

使用修飾符時必須和變量用空格隔開

Smarty的foreach循環

$arr = array(0=>array('name'=>'霍建華','age'=>'20'),1=>array('name'=>'林心如','age'=>'18'));
$smarty->assign('arr',$arr);
{foreach item=person from=$arr}
<p>姓名:{$person.name}</p>
<p>年齡:{$person.age}</p>
{/foreach}
//從smarty3開始支持與PHP foreach一樣的語法
{foreach $arr as $person}
<p>姓名:{$person.name}</p>
<p>年齡:{$person.age}</p>
{/foreach}

Smarty的文件引用

//sitename屬性僅僅只能在引入文件中使用
{include file='header.html' sitename='網站主體'}

使用PHP內置函數

$smarty->assign('date',time());
{'Y-m-d'|date:$date}
$smarty->assign('str','Hello word');
{'word'|str_replace:'Beijin':$str}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、模板引擎簡介 什么是模板? 所謂模板就是指無PHP代碼,只有HTML+CSS+JS。 什么是模板引擎? 模板...
    十畝魚塘閱讀 6,309評論 2 16
  • 1)、模板引擎概念 ? 模板引擎的功能是實現邏輯與顯示相分離,使程序設計者可以專注于程序功能的開發,使網頁設計師專...
    YSail閱讀 713評論 0 0
  • PHP 學習目錄 ├─PHP視頻教程 1 LAMP網站構建 │ ├─PHP教程 1.1.1 新版視頻形式介紹│ ...
    曹淵說創業閱讀 16,185評論 29 417
  • 配置 1. 下載ci框架和smarty, 創建項目目錄 2. 在 /var/www/ci_smarty/appli...
    fizzday閱讀 2,410評論 0 2
  • 歲月,不停 遺落的的記憶,任由你訴說 雅江江畔 不知怎樣咆哮 才能流淌我心中的所有心思 每一次的心跳悸動 映著你純...
    西域小刀閱讀 525評論 2 4