php smarty框架案例,PHP框架_Smarty
目錄
1.環(huán)境搭建
文件夾目錄
|--libs ? ? ?Smarty核心文件
|--demo 開發(fā)目錄
|--cache 緩存目錄
|--template_c 模板編譯生成目錄
|--tpl 模板目錄
|--*.php php文件
2.基本配置
test.php
//引入smarty類
require("../lib/Smarty.class.php");
//實(shí)例化對(duì)象
$smarty = new Smarty();
//配置Smarty
$smarty->left_delimiter = "{"; //左定界符
$smarty->right_delimiter = "}"; //右定界符
$smarty->template_dir = "tpl"; //模板目錄
$smarty->compile_dir = "template_c"; //模板編譯生成目錄
$smarty->cache_dir = "cache"; //緩存目錄
/*Smarty的緩存機(jī)制通常不開啟*/
//$smarty->caching = true; //開啟緩存
//$smarty->cache_lifetime = 120; //緩存時(shí)間
//smarty兩個(gè)基本方法
$smarty->assign('articleTitle',"fuck the sky"); //設(shè)置title變量,賦值
$smarty->display('test.html'); //在test.html模板中展示
3.Smarty變量調(diào)節(jié)器
{* 1.首字母大寫capitalize*}
{$articleTitle|capitalize}
{* 2.字符串連接 cat*}
{$articleTitle|cat:" yesterday."}
{* 3.日期格式化 date_format*}
{$yesterday|date_format}
{* %H:時(shí) %M:分 %S:秒 %Y:年 %B:月 %e:日 %A:星期 *}
{$yesterday|date_format:"%A, %Y %B %e %H:%M:%S"}
{* 4.為未賦值或?yàn)榭盏淖兞恐付J(rèn)值default*}
{$articleTitle|default:"no title"}
{* 5.轉(zhuǎn)碼 escape*}
{*用于html轉(zhuǎn)碼,url轉(zhuǎn)碼。默認(rèn)是html轉(zhuǎn)碼*}
{* 6.小寫 lower 大寫 upper*}
{* 7.所有的換行符將被替換成
nl2b*}
{{$articleTitle|nl2br}}
4.Smarty條件判斷
{* eq(==) neq(!=)gt(>)lt(
{* 修飾詞時(shí)必須和變量或常量用空格格開*}
{if $name eq "Ryan"}
Hello Boy.
{elseif $name eq "YY"}
NO.
{else}
Who
{/if}
5.Smarty的循環(huán)
test.php中定義$articlelist數(shù)組
$articlelist = array(
array(
"title" => "第一篇文章標(biāo)題",
"author" =>"第一作者",
"content" =>"第一內(nèi)容"
),
array(
"title" => "第二篇文章標(biāo)題",
"author" =>"第二作者",
"content" =>"第二內(nèi)容"
)
);
test.html中
{* section循環(huán) *}
{* 1.start 循環(huán)執(zhí)行的初始位置。如果該值為負(fù)數(shù),開始位置從數(shù)組的尾部算起*}
{* 2 step 該值決定循環(huán)的步長。*}
{* 3.設(shè)定循環(huán)最大執(zhí)行次數(shù)。*}
{* 4.show 決定是否顯示該循環(huán)。*}
{section name=article loop=$articlelist}
{$articlelist[article].title}
{$articlelist[article].author}
{$articlelist[article].content}
{/section}
{* foreach循環(huán) *}
{foreach $articlelist as $article}
{$article.title}
{$article.author}
{$article.content}
{foreachelse}
NULL
{/foreach}
6.Smarty模板的引用
{*include file="header.tpl" *}
7.Smarty類與對(duì)象的賦值與引用
test.php中定義myObject類
class myObject{
function meth1($params){
return $params[0]." ".$params[1];
}
}
$myObj = new myObject();
$smarty->assign("myObj",$myObj);
test.html
{$myObj->meth1(array("蘋果","炸了"))}
8.smarty函數(shù)插件
{* function 函數(shù)插件 *}
{*創(chuàng)建Smarty插件:*}
{* 在插件目錄里新建文件 類型.插件名.php文件*}
{* 插件方法名字書寫規(guī)范: smarty_類型_插件名([...]){}*}
{* 調(diào)用方法:函數(shù)名 參數(shù)1=數(shù)值1 參數(shù)2=數(shù)值2 *}
{test width=150 height =2}
//function.test.php
function smarty_function_test($params){
$width = $params["width"];
$height = $params["height"];
return $width*$height;
}
{* modifiers 修飾插件 *}
{* 調(diào)用方法:第一個(gè)參數(shù)|函數(shù)名 其他參數(shù) *}
{$yesterday|test:"Y-m-d h:i:s"}
//modifier.test.php
function smarty_modifier_test($utime,$format){
return date($format,$utime);
}
{* block functions 區(qū)塊函數(shù)插件 *}
{test2 replace="true" maxnum=10}
{$str}
{/test2}
//block.test2.php
function smarty_block_test2($params,$content){
$replace = $params["replace"];
$maxnum = $params["maxnum"];
if($replace == "true"){
$content = str_replace(",",".",$content);
}
$content = substr($content,0,$maxnum);
return $content;
}
避免重復(fù)造輪子的UI自動(dòng)化測(cè)試框架開發(fā)
一懶起來就好久沒更新文章了,其實(shí)懶也還是因?yàn)槊?今年上半年的加班趕上了去年一年的加班,加班不息啊,好了吐槽完就寫寫一直打算繼續(xù)的自動(dòng)化開發(fā) 目前各種UI測(cè)試框架層出不窮,但是萬變不離其宗,驅(qū)動(dòng)PC瀏覽 ...
ABP入門系列(1)——學(xué)習(xí)Abp框架之實(shí)操演練
作為.Net工地搬磚長工一名,一直致力于挖坑(Bug)填坑(Debug),但技術(shù)卻不見長進(jìn).也曾熱情于新技術(shù)的學(xué)習(xí),憧憬過成為技術(shù)大拿.從前端到后端,從bootstrap到j(luò)avascript,從py ...
旺財(cái)速啃H5框架之Bootstrap(五)
在上一篇<>做了基本的框架,<>篇里也大體認(rèn)識(shí)了bootst ...
Angular企業(yè)級(jí)開發(fā)(5)-項(xiàng)目框架搭建
1.AngularJS Seed項(xiàng)目目錄結(jié)構(gòu) AngularJS官方網(wǎng)站提供了一個(gè)angular-phonecat項(xiàng)目,另外一個(gè)就是Angular-Seed項(xiàng)目.所以大多數(shù)團(tuán)隊(duì)會(huì)基于Angular-S ...
Scrapy框架爬蟲初探——中關(guān)村在線手機(jī)參數(shù)數(shù)據(jù)爬取
關(guān)于Scrapy如何安裝部署的文章已經(jīng)相當(dāng)多了,但是網(wǎng)上實(shí)戰(zhàn)的例子還不是很多,近來正好在學(xué)習(xí)該爬蟲框架,就簡單寫了個(gè)Spider Demo來實(shí)踐.作為硬件數(shù)碼控,我選擇了經(jīng)常光顧的中關(guān)村在線的手機(jī)頁面 ...
制作類似ThinkPHP框架中的PATHINFO模式功能
一.PATHINFO功能簡述 搞PHP的都知道ThinkPHP是一個(gè)免費(fèi)開源的輕量級(jí)PHP框架,雖說輕量但它的功能卻很強(qiáng)大.這也是我接觸學(xué)習(xí)的第一個(gè)框架.TP框架中的URL默認(rèn)模式即是PathInfo ...
旺財(cái)速啃H5框架之Bootstrap(四)
上一篇<>已經(jīng)把導(dǎo)航做了,接下來搭建內(nèi)容框架.... 對(duì)于不規(guī)整的網(wǎng)頁,要做成自適應(yīng)就有點(diǎn)玩大了.... 例如下面這種版式的頁面. ...
一起學(xué) Java(三) 集合框架、數(shù)據(jù)結(jié)構(gòu)、泛型
一.Java 集合框架 集合框架是一個(gè)用來代表和操縱集合的統(tǒng)一架構(gòu).所有的集合框架都包含如下內(nèi)容: 接口:是代表集合的抽象數(shù)據(jù)類型.接口允許集合獨(dú)立操縱其代表的細(xì)節(jié).在面向?qū)ο蟮恼Z言,接口通常形成一個(gè) ...
Hibernatel框架關(guān)聯(lián)映射
Hibernatel框架關(guān)聯(lián)映射 Hibernate程序執(zhí)行流程: 1.集合映射 需求:網(wǎng)絡(luò)購物時(shí),用戶購買商品,填寫地址 每個(gè)用戶會(huì)有不確定的地址數(shù)目,或者只有一個(gè)或者有很多.這個(gè)時(shí)候不能把每條地址 ...
隨機(jī)推薦
Leetcode 102 Binary Tree Level Order Traversal 二叉樹+BFS
二叉樹的層次遍歷 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...
js 獲取 input file 文件 附給 image src
var a=document.querySelector('input[type=file]'); a.onchange = function (e) { //var reader = new Fil ...
Python Django manage.py提供的命令及用法
λpython manage.pyType'manage.py help 'for help on a specific subcommand. Available ...
mysql的having語句
mysql> use qq; Database changed mysql> #查詢本店價(jià)比市場價(jià)省的錢,并且要求省錢200元以上的取出來 mysql> select goods_i ...
文件操作-php
PHP的優(yōu)點(diǎn)
1.語法簡單 2.學(xué)習(xí)成本低 3.開發(fā)效率高 4.跨平臺(tái) 5.開發(fā)部署方便 6.開源框架非常豐富(如:ThinkPHP) 7.開源CMS系統(tǒng)非常豐富(如:Joomla,Wordpress) 8.開源網(wǎng) ...
Python_方法演示
class Root: __total=0 def __init__(self,v): #構(gòu)造函數(shù) self.__value=v Root.__total+=1 def show(self): #普通 ...
RHEL7 timedatectl命令
1.要顯示系統(tǒng)的當(dāng)前時(shí)間和日期,使用timedatectl命令,如下: [root@rhel7 ~]# timedatectl Local time: Mon -- :: EDT Universal ...
java面試題------40個(gè)Java集合面試問題和答案
Java集合框架為Java編程語言的基礎(chǔ),也是Java面試中非常重要的一個(gè)知識(shí)點(diǎn). 這里,我列出了一些關(guān)于Java集合的重要問題和答案. 1.Java集合框架是什么?說出一些集合框架的長處? 每種編程 ...
JsonConvert.DeserializeAnonymousType
string JsApiTicketString = string.Empty; using (StreamReader reader = new StreamReader(response.GetR ...
總結(jié)
以上是生活随笔為你收集整理的php smarty框架案例,PHP框架_Smarty的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++:实现量化基础互换利率basis
- 下一篇: PHP之Smarty