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;