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