沖縄が日本のシリコンバレーのようになってほしいと願うiOSエンジニアのブログ

世のエンジニアの役に立つようなブログにしたいなぁ

Smartyで静的htmlを生成する

display関数の代わりにfetch関数を利用。
fetch関数は、テンプレートを表示する代わりにその出力を返します。

$smarty = new Smarty();
$smarty->assign("contens", $_POST{"contents"});

// ※ 乱数を生成してファイル名に
$filename = rand( 1000000, 9999999) . ".html";

// 出力を取得しファイルに出力
$fp = fopen($filename, "w"); //書き込みモードでファイルをオープン
if (!(empty($fp))) {
flock($fp, LOCK_EX);
fputs($fp, $smarty->fetch("test.tpl.html")); //データの書き出し
flock($fp, LOCK_UN);
fclose($fp);
}

参考サイト
http://sunset.freespace.jp/smarty/SmartyManual_2-6-6J_html/api.fetch.html