日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Smarty 显示大括号 | 在Smarty中计算数组元素的长度 | Smarty字符串拼接

發布時間:2023/12/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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文件中的點(.)。


總結

以上是生活随笔為你收集整理的Smarty 显示大括号 | 在Smarty中计算数组元素的长度 | Smarty字符串拼接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。