想要獲得$smarty
ob_start();
$smarty
$string = ob_get_contents();
ob_end_clean();
$smarty
$string = $smarty
//captureName為{capture name=banner}中的name;
//方法需在tpl中使用capture捕獲輸出
//和第一種原理是一樣的
//php $this
//不難看出smarty的capture正是使用了php的ob_start方法
總結
我在smarty中靜態頁面時
index
<?PHP
if(file_exists(
//存在靜態頁輸出靜態頁
//使用capture截獲包含靜態頁後的輸出
$smarty
$smarty
//動態輸出部分
$num = rand(
$smarty
//再次display
$smarty
}else{
//不存在靜態頁往下繼續運行
//這裡使用上述方法
ob_start();
//假如要靜態數組$array在display後的輸出
$smarty
$smarty
//將動態輸出內容存至$string變量
$string = ob_get_contents();
ob_end_clean();
//生成靜態頁
$handle = fopen(
fwrite($handle
fclose($handle);
//動態輸出部分
$num = rand(
$smarty
//輸出index
$smarty
}
?>
static
我是靜態頁!
includeStatic
{capture name=staticed}
{include file=$filename}
{/capture}
needStatic
{capture name=staticed}
{section name=a loop=$array}
{$array[a]}
{/section}
{/capture}
index
我是首頁
這裡是靜態部分
{$smarty
這裡是動態部分
{$num}
當不願在php中使用界定符或直接輸出html標記時(這樣顯得代碼很亂=
From:http://tw.wingwit.com/Article/program/PHP/201311/21345.html