方法一:
復制代碼 代碼如下: <?php require_once("./config/config.php"); ob_start(); $id=$_GET[id]; $sql="select * from table_name where id='$id'"; $result=mysql_query($sql); $rs=mysql_fetch_object($result); $smarty->assign("showtitle",$rs->title); $smarty->assign("showcontent",$rs->content); $smarty->display("content.html"); $this_my_f= ob_get_contents(); ob_end_clean(); $filename = "$id.html"; tohtmlfile_cjjer($filename,$this_my_f); // 文件生成函數 function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content){ if (is_file ($file_cjjer_name)){ @unlink ($file_cjjer_name); //存在,就刪除 } $cjjer_handle = fopen ($file_cjjer_name,"w"); //創建文件 if (!is_writable ($file_cjjer_name)){ //判斷寫權限 return false; } if (!fwrite ($cjjer_handle,$file_cjjer_content)){ return false; } fclose ($cjjer_handle); //關閉指針 return $file_cjjer_name; //返回文件名 } ?> 方法二: smarty中有一個獲取模板頁內容方法fetch(), 它的聲明原形是這樣的: 復制代碼 代碼如下: <?php function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false) ?> 第一個參數為模板名稱, 第二個參數為緩存的id, 第三個參數為編譯id, 第四個參數為是否顯示模板內容. 生成靜態頁我們就需要用到這個方法. 復制代碼 代碼如下: <?php $smarty = new Smarty(); //其它模板替換語法... //下面這句取得頁面中所有內容, 注意最后一個參數為false $content = $smarty->fetch('模板名稱.tpl', null, null, false); //下面將內容寫入至一個靜態文件 $fp = fopen('news.html', 'w'); fwrite($fp, $content); fclose($fp); //OK, 到這里這個news.html靜態頁就生成了, 你可以處理你下一步的工作了 ?>新聞熱點
疑難解答