詳細講解一下關于PHP生成靜態頁面的步驟:為了研究這靜態的生成,我花了不少的時間,把我的經驗給大家轉述一下:
下面是我封裝的create html 類:
- <?php
- class makehtml
- {
- //+-----------------------------
- //+ 創建HTML文件夾 按照格式建立
- //+-----------------------------
- function c_dir($html_type,$root)
- {
- $htmldata_dir=$root;
- if (!is_dir($htmldata_dir))
- {
- if (!mkdir($htmldata_dir,0777))
- {
- exit('對不起 ,這沒有HTML文件夾'.$htmldata_dir.' 而且不能創建 .');
- }
- }
- elseif (!is_writable($htmldata_dir))
- {
- exit('對不起, 文件夾 '.$htmldata_dir.' 不可寫');
- }
- return $htmldata_dir;
- }
- function replace_tpl($data,$input_data,$name)
- {//+ 替換 html 模板中的變量
- $data=str_replace("{title}",$input_data['title'],$data);
- $data=str_replace("{content}",$input_data['content'],$data);
- return $data;
- }
- function create_html($htmlpage,$name,$root,$input_data)
- {//+ 生成 html 文件 function create_html('模板','靜態文件名','文件存儲目錄','提交數據');
- $htmldata_dir=$this->c_dir($html_type,$root); //c_dir("格式","名稱")
- $modeltpl=$htmlpage; //可以加路徑
- $fp=fopen($modeltpl,'r');
- $tpldata.=fread($fp,filesize($modeltpl));
- fclose($fp);
- $tpl_data=$this->replace_tpl($tpldata,$input_data,$name);
- $fp=fopen($htmldata_dir.'/'.$name.'.shtml','w+');
- unset($htmldata_dir);
- fwrite($fp,$tpl_data);
- fclose($fp);
- }
- }
- ?>
代碼應用方法,配合數據庫操作,數據庫表大家自己建。
- ?<?php
- include("mysql.php");
- include("create_html.php");
- $html=new makehtml(); //實例化CREATE HTML對象
- $op=$_GET["op"];
- if($op=='insert')
- {
- $title=$_POST["title"];
- $content=$_POST["content"];
- $file_path=date("Y-m",time()); //以時間的格式來命名文件夾
- $query=$DB->query("insert into news values('','$title','$content','$times','')");
- $name=$DB->insert_id();
- $sql_data=array(
- 'title'=>$title,
- 'content'=>$content
- );
- $html->create_html('model.html',$name,$file_path,$sql_data);
- //+分別代表的意思是:模板頁面,生成后的名稱,存放文件夾,寫入模板的數據信息
- }
- ?>
注意:在這里我只是寫了個簡單的思路,具體的需求需要根據大家的應用來了,這是最簡單的發布,還有編輯希望想學習的朋友們繼續研究。
新聞熱點
疑難解答