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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Smarty中的内建函数(一)config_load、foreach

發布時間:2025/6/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Smarty中的内建函数(一)config_load、foreach 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、capture

將模板輸出的數據存放到一個變量里,不能嵌套,<{capture name="變量名"}><{/capture}>之間的內容

通過<{$smarty.capture.變量名}>來訪問

2、config_load

從配置文件讀取變量

[html]?view plaincopy print?
  • <{*??
  • ????必選file="指定文件"??
  • ????可選section="配置文件中的區域",即配置文件中的“[]”??
  • ????可選scope="local/parent/global"??
  • ????????scope默認為local,即作用域為本模板??
  • ????????parent作用域為本模板以及調用本模板的父模板??
  • ????????global作用域為所有模板??
  • ????可選global="true/false",是否全局可見,與scope="parent"相同??
  • ????????如果指定了global的同時又指定了scope,模板會忽略global,則以scope為準??
  • *}>??
  • <{assign?var="name"?value="chuacom"}>??
  • <{$name}><br><br>??
  • ??
  • <{config_load?file="input.conf"?section="UserEmail"}>??
  • name:<{#name#}><br><{*如果在本模板中已經存在此變量名,則會覆蓋原有的變量值*}>??
  • email:<{#email#}><br><br>??
  • ??
  • <{config_load?file="input.conf"?section="UserID"}>??
  • name:<{#name#}><br>??
  • id:<{#id#}><br><{*UserID區域在配置文件中為hidden,所以不能被加載和使用*}>??
  • [plain]?view plaincopy print?
  • #?global?全局變量,在加載這個配置文件的時候,全局變量就會被加載,如果和局部變量同名,會優先使用局部變量??
  • name?=?"chuangrain"??
  • age?=?20??
  • address?=?"四川"??
  • ??
  • #域?,用?“[?]”?申明??
  • [UserEmail]??
  • email?=?"chuang@admin.com"??
  • ??
  • #隱藏部分?"[.?]"?申明,在模板中無法使用這部分的變量??
  • [.UserID]??
  • id?=?'1111111111111111111'??
  • 結果:

    chuacom


    name:chuangrain

    email:chuang@admin.com


    name:chuangrain

    id:

    3、foreach

    [php]?view plaincopy print?
  • $arr?=?array(??
  • ????array(??
  • ????????'id'?=>?'001',??
  • ????????'name'?=>?'zhao',??
  • ????),??
  • ????array(??
  • ????????'id'?=>?'002',??
  • ????????'name'?=>?'qian',??
  • ????),??
  • );??
  • ??
  • $smarty->assign('arr',$arr);??
  • ??
  • ??
  • $smarty->display('input.html');??
  • [html]?view plaincopy print?
  • <{*??
  • ????from,必選,指定遍歷的數組??
  • ????item,必選,當前元素的變量名??
  • ????key,可選,當前處理元素的鍵名??
  • ????name,可選,循環的名稱??
  • ??
  • ????foreachelse?在from變量沒有值或不存在的時候執行??
  • *}>??
  • <{foreach?from=$arr?item=arr1}>??
  • ????id:<{$arr1.id}>??
  • ????name:<{$arr1.name}><br>??
  • <{foreachelse}>??
  • ????none??
  • <{/foreach}>??
  • ??
  • <br>??
  • ??
  • <{foreach?from=$arr?item=arr1?key=k}>??
  • ????<{$k}>:<{$arr1.id}>??
  • ????<{$k}>:<{$arr1.name}><br>??
  • <{foreachelse}><{*如果$arr不存在或為空null時執行*}>??
  • ????none??
  • <{/foreach}>??
  • ??
  • <br>??
  • ??
  • <{foreach?from=$arr?item=arr1}>??
  • ????<{foreach?from=$arr1?item=new_arr?key=k}>??
  • ????????<{$k}>:<{$new_arr}>??
  • ????<{/foreach}>??
  • ????<br>??
  • <{/foreach}>??
  • 運行結果:

    4、include加載模板文件

    [html]?view plaincopy print?
  • <{*??
  • ????file,必選,加載文件的位置??
  • ????assign,可選,把模板文件放在這個變量中,暫時不用輸出被包含的文件??
  • ????var...,可選,多選,變量名=值,將變量傳遞給被包含的模板,在被包含的模板中可以使用該變量??
  • *}>??
  • <{include?file="new.html"?assign="article"?title="SUSE"?content="this?is?a?test"}>??
  • <{$article}><{*此時才將包含的模板文件顯示出來*}>??
  • new.html
    [html]?view plaincopy print?
  • articleTitle:<{$title}><br>??
  • articleContent:<{$content}>??
  • 運行結果:

    5、include_php 加載PHP文件

    [html]?view plaincopy print?
  • <{include_php?file="include_php.php"?assign="user"}><{*file必選,文件位置,assign可選,存放包含文件的內容*}>??
  • <{$user}>??
  • include_php.php

    [php]?view plaincopy print?
  • $arr?=?array(??
  • ????'id'?=>?'001',??
  • ????'name'?=>?'zhao',??
  • );??
  • ??
  • print_r($arr);??
  • 運行結果: Array ( [id] => 001 [name] => zhao )

    6、insert插入函數

    插入一個同名的函數,不會緩存

    [php]?view plaincopy print?
  • <span?style="font-family:Simsun;font-size:16px;">$smarty->display('new.html');??
  • ??
  • function?insert_getTitle($arr?=?null){????//函數名為"insert_"加上insert中name相同的函數名??
  • ????print_r($arr);????//函數體??
  • }</span>??
  • new.html

    [html]?view plaincopy print?
  • <span?style="font-family:Simsun;font-size:16px;"><{insert?name="getTitle"?assign="info"?title="this?is?a?demo"}>??
  • //調用"insert_"加name的值函數??
  • //調用php程序中的insert_getTitle函數,并傳遞參數??
  • //如果php程序中不存在,會去查找擴展中的insert.getTitle.php文件中smarty_insert_getTitle函數</span>??
  • 運行結果:Array ( [name] => getTitle [assign] => info [title] => this is a demo )

    總結

    以上是生活随笔為你收集整理的Smarty中的内建函数(一)config_load、foreach的全部內容,希望文章能夠幫你解決所遇到的問題。

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