Smarty:capture函數(shù)

2018-10-14 11:20 更新

{capture}

{capture}可以捕獲標(biāo)記范圍內(nèi)的輸出內(nèi)容,存到變量中而不顯示。 任何在{capture name='foo'} 和 {/capture} 之間的內(nèi)容都會(huì)被捕獲到變量,變量名可以通過(guò)name屬性來(lái)指定。

捕獲的內(nèi)容可以通過(guò)$smarty.capture.foo變量來(lái)使用,這里foo是設(shè)置的name屬性。 如果沒(méi)有提供name屬性,默認(rèn)是default,也就是 $smarty.capture.default.

{capture}可以被嵌套使用。

屬性:

參數(shù)名稱(chēng)類(lèi)型必選參數(shù)默認(rèn)值說(shuō)明
namestringYesn/a捕獲區(qū)域的名稱(chēng)
assignstringNon/a捕獲內(nèi)容后賦值的變量名
appendstringNon/a將捕獲的內(nèi)容增加到數(shù)組中

可選標(biāo)記:

名稱(chēng)說(shuō)明
nocache關(guān)閉捕獲區(qū)域的緩存

警告

當(dāng)捕獲{insert}輸出的時(shí)候請(qǐng)小心。 如果開(kāi)啟了$caching并且 你希望通過(guò){insert} 在緩存的頁(yè)面上顯示動(dòng)態(tài)內(nèi)容,那么你無(wú)法捕獲這些內(nèi)容。

Example 7.21. {capture}使用name屬性

{* we don't want to print a div tag unless content is displayed *}
{capture name="banner"}
{capture "banner"} {* short-hand *}
  {include file="get_banner.tpl"}
{/capture}

{if $smarty.capture.banner ne ""}
<div id="banner">{$smarty.capture.banner}</div>
{/if}


Example 7.22. {capture} 捕獲內(nèi)容到變量

下面是capture函數(shù)的演示

{capture name=some_content assign=popText}
{capture some_content assign=popText} {* short-hand *}
The server is {$my_server_name|upper} at {$my_server_addr}<br>
Your ip is {$my_ip}.
{/capture}
<a href="#">{$popText}</a>


Example 7.23. {capture} 捕獲內(nèi)容到數(shù)組變量

下面例子演示了如何多次捕獲內(nèi)容,形成數(shù)組。

{capture append="foo"}hello{/capture}I say just {capture append="foo"}world{/capture}
{foreach $foo as $text}{$text} {/foreach}

輸出:

I say just hello world

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)