Smarty 顯示大括號 | 在Smarty中計算數組元素的長度 | Smarty字符串拼接

參考鏈接:http://hi.baidu.com/bdusnb/item/289d160e6a9c92cd9157183d

參考鏈接:http://hi.baidu.com/mayimu789/item/b565088d047da0d05f0ec16f

參考鏈接:http://blog.sina.com.cn/s/blog_8155e74d0101el2k.html


Smarty 3 :大括號問題

smarty如何避免大括號、超鏈接如何去掉下劃線

本文向大家描述一下避免Smarty與CSS語法沖突的三種方法,Smarty和CSS的語法存在沖突,因為二者都需要使用大括號{}。如果簡單地將CSS標記嵌入到HTML文檔首部,將導致"不可識別標記"錯誤。

避免Smarty與CSS語法沖突

熟悉CSS的人很快就會發現Smarty和CSS的語法存在沖突,因為二者都需要使用大括號{}。如果簡單地將CSS標記嵌入到HTML文檔首部,將導致"不可識別標記"錯誤:

<html><head><title>{$title}</title><style type="text/css">p{ margin::2px } </style></head>... 

不要擔心,因為我們有3種解決方案。

一、使用link標記從另一個文件中提取樣式信息:

<html><head><title>{$title}</title><link rel="stylesheet" type="text/css" href="default.css"/></head>... 

二、使用Smarty的literal標記將樣式表信息包圍起來

這些標記告訴Smarty不要解析該標記內的任何內容:

<html><head><title>{$title}</title>
{literal} <style type="text/css">p{ margin::2px } </style>
{/literal} </head>... 

三、修改Smarty的默認定界符

可以通過設置center_delimiter和center_delimiter屬性來做到這一點:

<?php
require("Smarty.class.php"); 
$smarty=newSmarty; 
$smarty->left_delimiter=''; 
$smarty->right_delimiter='';... 
?>
雖然3種解決方案都能解決問題,但其中第一種可能是最方便的,因為將CSS放在單獨的文件中是一種常見的實踐做法。此外,這種解決方案不需要修改Smarty的重要默認配置(定界符)。

超鏈接如何去掉下劃線

在源代碼中的<HEAD>…</HEAD>之間輸入如下代碼:

<style type="text/css"> 
<!--
a { text-decoration: none}
--> 
</style>
或者直接加入超鏈接中:

<a style= "text-decoration:none " href=#> fason </a>

Smarty 3 :計算數組個數問題

分配了一個數組array給Smarty,假設Smarty的分界符為'{' 和'}'。

在很多資料上都看到,在Smarty中要求數組的長度時,可以用在數組后便 加|count的方法調用。

即通過{array|count}獲得array的長度。

但是今天在寫模板時,發現這樣得不到數組的長度,而只是得到一個返回 的字符串Array。

也就是說僅僅是返回了{array}的結果,而沒有返回其array的長度。

查看smarty\plugins文件夾,發現并沒有count的相關方法,也就是說,count是直接調用了php中的方法。

后來通過網絡上的資料,發現可以在count前面加@,從而正確的獲取數組的長度。

再進一步查看Smarty的源碼,發現Smarty對屬性調節器后邊的方法名進行處理時,會對前邊加@的進行特殊處理。

因此作出判斷:

在Smarty中的屬性調節器中調用php中定義好的函數時,可以通過加@來表示。

1、對類型為數組的方法進行測試時,發現不加@符號都會出錯。

??? 比如:要對一個數組調用count方法求出數組的長度,就可以這樣調用{array|@count},而要對數組調用end方法得出數組的最后一組數據時,則可以通過{array|@end}。

2、在對字符串的相關函數進行測試,發現加不加@都可以正常的調用。

3、其他的尚未認真測試。

對于在smarty中調用復雜的php函數不予鼓勵,因為Smarty的本意就是要實現代碼和模板分離,應該認定模板就是界面設計的人員用的,如果過多地加復雜邏輯,對他們來說就是一種折磨了。www.relaxcool.com/


Smarty 3 :字符串拼接

PHP頁面傳到Smarty模板上的變量(這里用,在Smarty上創建兩個變量代替)

{assign var="name" value='Richard.Lee'}
{assign var="age" value='27'}

1、想要在Smarty模板的某個位置輸出(Richard.Lee---27

??拼接方法:{$name|cat:"---"|cat:$age}

?? 解釋:將變量$name、"---"、$age拼接成一個字符串

?

2、想要在Smarty模板的某個位置輸出(姓名:Richard.Lee,年齡:27

??拼接方法:{"姓名:"|cat:$name|cat:",年齡:"|cat:$age}
????????????{"姓名:"|cat:$name|cat:","|cat:"年齡:"|cat:$age}

?? 解釋:兩個拼接方法得到的效果一樣

?

備注:在網上找到的方法,不是很理解|cat:的作用,但是經過兩個簡單的例子得出簡單結論:可以把|cat:當成是鏈接字符串的符號,相當于PHP文件中的點(.)。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276239.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ftp協議分析(一)

作者: 肖建彬 | 可以轉載, 轉載時務必以超鏈接形式標明文章原始出處和作者信息及版權聲明網址&#xff1a;http://www.xiaojb.com/archives/it/ftp.shtml根據是使用port模式還是passive模式&#xff0c;ftp使用不同的tcp端口號&#xff0c;在詳細描述ftp前&#xff0c;我們來簡…

JavaScript 元編程

大家好&#xff0c;我是若川。今天給分享一篇來自freecodecamp的好文。我是freecodecamp杭州社區組織者之一&#xff0c;有一群小伙伴一起組織線下分享活動&#xff0c;不過2020年我們杭州社區幾乎沒有活躍&#xff0c;我也沒有什么貢獻。另外&#xff0c;我的公眾號「若川視野…

python 異常處理模塊_擴展Python模塊系列(五)----異常和錯誤處理

在上一節中&#xff0c;討論了在用C語言擴展Python模塊時&#xff0c;應該如何處理無處不在的引用計數問題。重點關注的是在實現一個C Python的函數時&#xff0c;對于一個PyObject對象&#xff0c;何時調用Py_INCREF和Py_DECREF。在編寫C語言代碼時&#xff0c;需要了解Python…

常見的php筆試題(附答案)搜集整理

轉載鏈接&#xff1a;http://www.yaojinbu.com/p/139.html 常見的php筆試題&#xff08;附答案&#xff09;搜集整理 1.在PHP中&#xff0c;當前腳本的名稱&#xff08;不包括路徑和查詢字符串&#xff09;記錄在哪個預定義變量中&#xff1f;而鏈接到當前頁面的URL又記錄在哪個…

Js整理備忘(02)——運算符

1、運算符的表示以及優先級 Javascript&#xff08;以下簡寫為Js&#xff09;的大部分運算符與C或Java是類似的。 記得剛學C語言時老師講的優先級口訣&#xff0c;非常好記&#xff1a;“括、單、算、移、關”“位、邏、條、賦、逗”&#xff0c;此處也可以套用一下&#xff0c…

手寫一個合格的前端腳手架

為什么我們需要一套腳手架為什么我們需要一套腳手架&#xff0c;它能幫助我們解決哪些痛點問題。?前端項目配置越來越繁瑣、耗時&#xff0c;重復無意義的工作?項目結構不統一、不規范?前端項目類型繁多&#xff0c;不同項目不同配置&#xff0c;管理成本高?腳手架也可以是…

第一篇cnblog!

本人才疏學淺&#xff0c;終于通過了cnblog的審核&#xff0c;興奮之余&#xff0c;發表感言——不容易啊&#xff01;在我的博聞里面&#xff0c;隨筆類當然就是技術類的比較多的&#xff0c;特別是實例類的。理論類的大部分放在文章板塊&#xff0c;本人e文特別好(哈哈&#…

解決error 1045: Access denied for user: 'root@localhost' (Using password: YES)

轉載連接&#xff1a;http://jianfw2009.blog.163.com/blog/static/13431366020111016112459158/ 1、先停止mysql服務2、在mysql的目錄下找到my.ini&#xff0c;在[mysqld]后面加上skip-grant-tables3、啟動mysql服務,打開Command Line Client以空密碼登錄4、退出mysql,并停止服…

fillcolor是什么意思_fill是什么意思

1. (使)裝滿;(使)注滿;(使)充滿If you fill a container or area, or if it fills, an amount of something enters it that is enough to make it full.e.g.Fill a saucepan with water and bring to a slow boil...往平底鍋里加滿水,小火煮沸。e.g.She made sandwiches, fill…

利用JMeter進行壓力測試(1)(轉)

轉自&#xff1a;http://www.cnblogs.com/game-over/archive/2010/01/08/1642685.html壓力測試以軟件響應速度為測試目標&#xff0c;尤其是在較短時間內大量并發用戶的同時訪問時&#xff0c;軟件的性能和抗壓能力。 JMeter是一款開源的壓力測試工具&#xff0c;目前最新Rele…

MyISAM InnoDB 區別

轉載鏈接&#xff1a;http://www.php100.com/html/webkaifa/database/Mysql/2011/0326/7789.html MyISAM 和 InnoDB 講解 InnoDB和MyISAM是許多人在使用MySQL時最常用的兩個表類型&#xff0c;這兩個表類型各有優劣&#xff0c;視具體應用而定。基本的差別為&#xff1a;MyISAM…

Git 內部原理圖解——對象、分支以及如何從零開始建倉庫

我們中的許多人每天都在使用 git&#xff0c;但是有多少人知道它的內部是怎么運作的呢&#xff1f;例如我們使用 git commit 時發生了什么&#xff1f;提交&#xff08;commit&#xff09;與提交之間保存的是什么&#xff1f;兩次提交之間難道只是文件的差異&#xff08;dif…

wpsmac和pc版的區別_Mac版WPS Office和微軟Office 2019哪個更好?

眾所周知&#xff0c; macOS系統生態下&#xff0c;有許多界面精美、功能強大、體驗出色的軟件&#xff0c;但提到辦公套件&#xff0c;人們首先想到的還是微軟 Office 套件&#xff0c;其中的Word、 Excel 以及PPT&#xff0c;但用戶體驗并不如意。但現在&#xff0c;蘋果用戶…

A tutorial video for MindManager for free

MindManager 2016 for Windows Essential Training 本人學習的時候使用的是MindManager 2018版本的&#xff0c;和2016版本差異不大。 轉載于:https://www.cnblogs.com/kelamoyujuzhen/p/10253278.html

Google, 請不要離開我們!

雖然我是.net陣營, 力挺Silverlight, 但是我真心希望谷歌留在中國, 如果她能夠靠談判求的言論自由的權利, 那將對中國的擁有自由信仰的一族產生重大的影響. 谷歌離開了中國, 不是她想拋棄中國市場, 而是中國決策者背叛了人性. 在此留下 Google 2010年1月14日的logo, 智慧的幽默…

高級php面試題及部分答案

轉載鏈接&#xff1a;http://www.2cto.com/kf/201304/201112.html 一. 基本知識點 1.1 HTTP協議中幾個狀態碼的含義:503 500 401 403 404 200 301 302。。。 200 : 請求成功&#xff0c;請求的數據隨之返回。 301 : 永久性重定向。 302 : 暫時行重定向。 401 : 當前請求需要用…

iec104點號_IEC104報文流程(有常用類型標識解釋)

參數地址圍類別97版基地址2002版基地址遙信1H------400H1H------4000H遙測701H------900H4001H------5000H遙控B01------B806001H------6100H設點B81H------C00H6201H------6400H電度C01H------C80H6401H------6600H遙測和遙信個數不設置上限&#xff0c;可以沒有上限限制&…

本周ASP.NET英文技術文章推薦[04/08 - 04/14](附贈自彈超級瑪麗主題曲)

摘要 本期共有6篇文章&#xff1a; ASP.NET編譯問題的公開Hotfix補丁 期待下個版本AjaxPro 的發布 在ASP.NET 2.0中使用MultiView控件實現多頁面表單 數據綁定的技巧&#xff1a;嵌套Eval語句 在ASP.NET 2.0中訪問并更新數據&#xff1a;使用數據源控件以編程方式訪問數據 AD…

一個離開某門戶網站人員自爆黑幕

去年&#xff0c;我已在星星發表了一個關于免費發短信的各類軟件的黑幕所在。而事實上的SMS&#xff08;即短信&#xff09;的黑幕遠不止于此&#xff0c;今天&#xff0c;我終于有空坐下來&#xff0c;把其中的一些讓你感覺平常卻實際觸目驚心的事情告訴你們&#xff0c;讓你們…

28歲自學3年前端成功轉行的勵志故事

為什么轉行因為混得不好。在成為程序員之前&#xff0c;我干過很多工作。由于學歷的問題&#xff08;高中&#xff09;&#xff0c;我的工作基本上都是體力活。包括但不限于&#xff1a;工廠普工、銷售&#xff08;沒有干銷售的才能&#xff09;、搬運工、擺地攤等&#xff0c;…