Smarty fetch方法

fetch
取得輸出的內容
===============

string fetch (string template [, string cache_id [, string compile_id]])

返回一個模板輸出的內容(HTML代碼),而不是直接顯示出來,需要指定一個合法的模 板資源的類型和路徑。你還可以通過 第二個可選參數指定一個緩存號,相關的信息可以查看緩存。

通過第三個可選參數,可以指定一個編譯號。這在你想把一個模板編譯成不同版本時使用,比如針對不同的語言編譯模板。編譯號的另外一個作用是,如果你 有多個$template_dir模板目錄,但只有一個$compile_dir編譯後存檔目錄,這時可以爲每一個$template_dir模板目錄指 定一個編譯號,以避免相同的模板文件在編譯後會互相覆蓋。相對於在每一次調用display()的時候都指定編譯號,也可以通過設置$compile_id編 譯號屬性來一次性設定。

Example 13-14. fetch
例子 13-14. 取得輸出的內容

include("Smarty.class.php");
$smarty = new Smarty;

$smarty->caching = true;

// only do db calls if cache doesn't exist
// 只有在緩存不存在時才調用數據庫
if(!$smarty->is_cached("index.tpl"))
{

// dummy up some data
$address = "245 N 50th";
$db_data = array(
"City" => "Lincoln",
"State" => "Nebraska",
"Zip" = > "68502"
);

$smarty->assign("Name","Fred");
$smarty->assign("Address",$address);
$smarty->assign($db_data);

}

// capture the output
// 捕獲輸出
$output = $smarty->fetch("index.tpl");

// do something with $output here
// 對將要輸出的內容進行處理

echo $output;