① smarty怎麼用php函數把字元串轉成數組後在計算數組個數
以下是對php中的數組與字元串的轉換函數進行了詳細的整理匯總,需要的朋友可以參考下
1.將一個字元串轉化為數組
str_split()用於將一個字元串轉化為數組
語法:
復制代碼
代碼如下:
str_split(string,length)
<SPAN
style="COLOR: #333333"><SPAN style="FONT-SIZE: 12px"><SPAN
style="FONT-FAMILY:
宋體">//</SPAN></SPAN></SPAN>string是必須的,是要分割的字元串;<SPAN
style="FONT-SIZE: 12px"><SPAN style="FONT-FAMILY: 宋體; COLOR:
#333333"><SPAN style="LINE-HEIGHT:
28px">
//length是可選的,規定每個數組元素的長度
</SPAN></SPAN></SPAN>
tips:
如果 length 小於 1,str_split() 函數將返回
false。
如果 length 大於字元串的長度,整個字元串將作為數組的唯一元素返回。
例子:
復制代碼
代碼如下:
<?php
$str="www..com";
print_r(str_split($str));
?>
② php中smarty疑問
void display (string template [, string cache_id [, string compile_id]])
該函數原形為display(string varname),作用為顯示一個模板。簡單的講,它將分析處理過的模板顯示出來,這里的模板文件不用加路徑,只要使用一個文件名就可以了,它路徑我們已經在$smarty->templates(string path)中定義過了。
程序執行完後我們可以打開當前目錄下的templates_c與cache目錄,就會發
現在下邊多出一些%%的目錄,這些目錄就是Smarty的編譯與緩存目錄,它由
程序自動生成,不要直接對這些生成的文件進行修改。
第二個可選參數指定一個緩存號,相關的信息可以查看緩存。
通過第三個可選參數,可以指定一個編譯號。這在你想把一個模板編譯成不同版本時使用,比如針對不同的語言編譯模板。編譯號的另外一個作用是,如果你有多個$template_dir模板目錄,但只有一個$compile_dir編譯後存檔目錄,這時可以為每一個$template_dir模板目錄指定一個編譯號,以避免相同的模板文件在編譯後會互相覆蓋。相對於在每一次調用display()的時候都指定編譯號,也可以通過設置$compile_id編譯號屬性來一次性設定。
③ PHP模板中smarty_block函數的用法
Smarty末班引擎中提供了三種插件支持,分別是block(塊),function(函數),modifier(調節器),用戶可以自己擴展。
block:是一種非常靈活的高級插件,這種插件在模板中使用時需要成對出現,Smarty內置的block插件例如section,foreach等,使用格式為:
{section name="customer" loop="$data"}
<li>內容</li>
{/section}
function:他的作用類似於函數,在模板中使用無需成對出現,系統內置的如include,格式為:{include file="web/index.tpl"}。
modifier:調節器是用於對變數進行修飾的,內置的調節器如:truncate(截取字元長度),date_format(格式化時間),使用格式為:
{$nowtime|date_format:"%Y-%m-%d"}
在來分析下你的問題:
-----------------------------------------------------------------------
你提問中的這個就應當屬於block插件,其中blockname是個插件名,此插件不包含任何參數。
{blockname}<!--插件開始標簽-->
沒有緩存的:{$smarty.now}<!--插件輸入的內容,Smarty.now為全局函數,意思是輸出當前時間-->
{/blockname}<!--插件結束標簽-->
④ PHP新手困惑:smarty如何在函數中返回 分配的值
不知所雲,是不是想要$smarty->_tpl_vars?
所有的assign的變數,都可以從{php}$smarty->_tpl_vars[ASSIGN_NAME]{/php}獲取到
限smarty2.6以前