PHP產生靜態html檔案一些方法總結_PHP教程

來源:互聯網
上載者:User
利用php產生靜態檔案我們用到最多的是以模板形式來替換產生了,如我把{A}定義為標籤在php中只要利用fopen讀模數板檔案,然後再利用replace替換{A}為PHP產生靜態html檔案執行個體即可。

1,下面使用模版的一個方法!

代碼如下 複製代碼

$fp = fopen ("templets.html","a");
if ($fp){
$fup = fread ($fp,filesize("templets.html"));
$fp2 = fopen ("html.shtml","w");
if ($fwrite ($fp2,$fup)){
$fclose ($fp);
$fcolse ($fp2);
die ("寫入模板成功");
} else {
fclose ($fp);
die ("寫入模板失敗!");
}
}
?>

簡單的將模板寫進一個檔案中存為html.html


2,按時間產生html檔案名稱

代碼如下 複製代碼
$content = "這是一個以日期時間為檔案名稱的靜態產生網頁的測試檔案,
檔案名稱格式一般為年月日時分秒.html";
$date = date('YmdHis');
$fp = fopen (date('YmdHis') . '.html',"w");
//本函數可用來開啟本地或者遠端的檔案 'w' 開檔案方式為寫入,
檔案指標指到開始處,並將原檔案的長度設為 0。若檔案不存在,
則建立新檔案。
if (fwrite ($fp,$content)){
//格式是.int fwrite(int fp(檔案名稱), string string(內容),
int [length](長度));本函數將字串 string 寫入檔案資料流的指標 fp 上。
若有指定長度 length,則會寫入指定長度字串,或是寫到字串結束。
fclose ($fp);//函數用來關閉已經開啟的檔案的指標 fp。
成功返回 true,失敗則返回 false。
die ("寫入模板成功");
} else {
fclose ($fp);
die ("寫入模板失敗!");
}
echo ($content);
?>

3,下面為轉換檔名的一個方法

代碼如下 複製代碼

$s_fname = "93e.php";
$o_fname = "93e.htm";
ob_end_clean();
ob_start();
include($s_fname);
$length = ob_get_length();
$buffer = ob_get_contents();
$buffer = eregi_replace("r","",$buffer);
ob_end_clean();

$fp = fopen($o_fname,"w+");
fwrite($fp,$buffer);
fclose($fp);
?>

這樣就可以把 93e.php轉化為靜態HTML檔案了 。要注意的是待轉換的檔案裡不能有 ob_end_clean();和 ob_start();語句,且目錄要有寫入權限。

上面三種方法都是產生了html頁面每次都要更新才有更新了,下面我們可以使用動態網頁面緩衝技術來執行個體html+php頁面,這個方法比上面都要好

首先設定.htaccess檔案,將動態調用的參數轉換為靜態HTML的URL地址,例如將在post目錄下的檔案,轉寄到根目錄的wp-post.php檔案中,加入的語句類似:

代碼如下 複製代碼

RewriteRule ^post/([a-z0-9-]+.html)$ wp-post.php?$1$2

然後修改wp-post.php檔案,在檔案的開頭加入以下PHP代碼:

代碼如下 複製代碼

ob_start();
$qstring = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";
define("HTML_FILE", $_SERVER['DOCUMENT_ROOT']."/post/".$qstring);

if (file_exists(HTML_FILE))
{
$lcft = filemtime(HTML_FILE);
if (($lcft + 3600) > time()) //判斷上次產生HTML檔案是否超過1小時,若沒有才直接輸出檔案內容
{
echo(file_get_contents(HTML_FILE));
exit(0);
}
}

之後是現有的PHP的代碼,然後在當前代碼的最後面加上如下的PHP代碼:

代碼如下 複製代碼

define("HTMLMETA","");
$buffer = ob_get_flush();
$fp = fopen(HTML_FILE, "w");
if ($fp)
{
fwrite($fp, $buffer.HTMLMETA);
fclose($fp);
}

好了,然後查看你的靜態HTML頁面,如果頁面尾部出現了注釋行,說明已經成功的建立了靜態HTML檔案

http://www.bkjia.com/PHPjc/633160.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633160.htmlTechArticle利用php產生靜態檔案我們用到最多的是以模板形式來替換產生了,如我把{A}定義為標籤在php中只要利用fopen讀模數板檔案,然後再利用repla...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.