一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - php中Smarty模板初體驗

php中Smarty模板初體驗

2019-12-09 14:12PHP教程網(wǎng) PHP教程

今天開始接觸了一下Smarty模板,被它的功能特性所吸引——設(shè)計與功能分離,這樣就能把前端設(shè)計和后臺設(shè)計分離,更好的實現(xiàn)網(wǎng)站開發(fā)的分工,提升開發(fā)效率。

下面介紹一下Smarty模板引擎的特性:

  1. 速度:采用Smarty編寫的程序可以獲得最大速度的提高,這一點是相對于其它的模板引擎技術(shù)而言的。

  2. 編譯型:采用Smarty編寫的程序在運行時要編譯成一個非模板技術(shù)的PHP文件,這個文件采用了PHP與HTML混合的方式,在下一次訪問模板時將WEB請求直接轉(zhuǎn)換到這個文件中,而不再進行模板重新編譯(在源程序沒有改動的情況下)

  3. 緩存技術(shù):Smarty選用的一種緩存技術(shù),它可以將用戶最終看到的HTML文件緩存成一個靜態(tài)的HTML頁,當(dāng)設(shè)定Smarty的cache屬性為true時,在Smarty設(shè)定的cachetime期內(nèi)將用戶的WEB請求直接轉(zhuǎn)換到這個靜態(tài)的HTML文件中來,這相當(dāng)于調(diào)用一個靜態(tài)的HTML文件。

  4. 插件技術(shù):Smarty可以自定義插件。插件實際就是一些自定義的函數(shù)。

  5. 模板中可以使用if/elseif/else/endif。在模板文件使用判斷語句可以非常方便的對模板進行格式重排。

  使用Smarty模板版本Smarty-3.0.8,解壓后文件目錄如下:

php中Smarty模板初體驗

  于是開始了我的Smarty之旅嘍——

 

  Step 1

  在服務(wù)器網(wǎng)頁文件夾中新建一個smartytest文件夾,只取libs目錄中的文件,復(fù)制到smartytest文件夾下,更名為smarty

  Step 2

  在test中新建目錄templates,并在該目錄下新建四個文件夾cache、configs、templates、templates_c,建成的文件夾形式如下圖

php中Smarty模板初體驗

  Step 3

  寫一個配置文件,通過它可以實現(xiàn)與Smarty的連接,而且把它寫成單獨的文件可以在寫不同頁面時重復(fù)寫相同的代碼(當(dāng)然也可以把它寫成類形式,便于自定義),這里我把它文件名定為config.php

復(fù)制代碼代碼如下:


<?php 
//獲取當(dāng)前文件夾所在的絕對路徑 H:\wamp\www\smartytest\ 
define('SMARTY_PATH',substr(dirname(__FILE__),0,-9)); 
//獲取templates文件夾的絕對路徑 H:\wamp\www\smartytest\templates 
define('TEMPLATES_PATH',SMARTY_PATH.'templates/'); 
require SMARTY_PATH.'smarty/Smarty.class.php'; 
$smarty = new Smarty; 
//定義目錄路徑 
$smarty->template_dir = TEMPLATES_PATH.'templates/'; 
$smarty->complile_dir = TEMPLATES_PATH.'templates_c/'; 
$smarty->config_dir = TEMPLATES_PATH.'configs/'; 
$smarty->cache_dir = TEMPLATES_PATH.'cache/'; 
//定義左右結(jié)束符 {% 和 %} 
$smarty->left_delimiter = '{%'; 
$smarty->right_delimiter = '%}'; 
//關(guān)閉緩存 
$smarty->caching = false; 
//關(guān)閉調(diào)試 
$smarty->debugging = false; 
?> 


  Step 4 
  寫一個簡單的模板文件命名為index.tpl,放到templates\templates目錄下 

復(fù)制代碼代碼如下:


<!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> 
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8"> 
<title>Smarty</title> 
</head> 
<body>{%$hello%}</body> 
</html> 


  Step 5 
  寫一個PHP文件,命名為index.php,放在templates文件目錄下 

復(fù)制代碼代碼如下:


<?php 
require 'config.php'; 
$smarty->assign('hello','Hello Word'); 
$smarty->display('index.tpl'); 
?> 


現(xiàn)在文件目錄為

 

php中Smarty模板初體驗

  Step 6

  測試文件:

  

php中Smarty模板初體驗

  總結(jié):使用Smarty模板過程中也遇見了問題,比如Smarty的目錄可以自己設(shè)置,自定義性較強,因此對Smarty的教程有很多版本(我在書上看到一個版本,百度百科也有另一種),結(jié)果兩個都參考就不明白怎么放了,最后還是使用百度百科的那種(也就是上文所說);其次在百度百科中的代碼是復(fù)制過來的,結(jié)果在使用時出現(xiàn)了syntax error, unexpected T_VARIABLE錯誤,看著代碼都很對啊,就是出錯,最后查找原因,原來是網(wǎng)頁中的全角空格所致,所以在網(wǎng)頁上復(fù)制的代碼的莫名錯誤最好的辦法就是把空格都去了重新寫;注意在寫PHP文件時hello沒有前邊的$符號,而在tpl文件中引用時就必須得加上$符號。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 无码中文字幕av免费放 | 亚洲国产精品91 | 国产视频一区在线观看 | 国产成人刺激视频在线观看 | 我与肥熟老妇的性事 | 西西人体大胆77777视频 | 亚洲免费色 | 四虎影剧院 | 秘书小说阿蛮 | 91香蕉依人综合久久 | 亚洲国产精品久久精品成人网站 | 护士的小嫩嫩好紧好舒服 | 欧美精品一区二区三区免费播放 | 亚洲精品资源 | 亚洲日本久久一区二区va | 日本一区三区 | 亚洲入口 | 69看片| 2019韩国最新三级 | 免费理伦片高清在线 | 免费亚洲视频 | 亚洲欧美日韩天堂 | 吃大胸寡妇的奶 | 操小女人 | 国产精品吹潮香蕉在线观看 | 国语刺激对白勾搭视频在线观看 | 久久久无码精品亚洲A片猫咪 | 国产中文在线视频 | 精品成人一区二区三区免费视频 | 视频在线观看大片 | 日韩成人在线影院 | 大伊香蕉在线精品不卡视频 | 日本一道高清不卡免费 | 色戒 完整版 | 思久久| 女人又色又爽又黄 | 亚州性夜夜射在线观看 | 我的妹妹最近有点怪免费播放 | 99久久精品久久久久久清纯 | 91看片淫黄大片欧美看国产片 | 亚洲欧美日韩成人一区在线 |