用php的ob_start來(lái)生成靜態(tài)頁(yè)面的方法分析
更新時(shí)間:2011年03月09日 23:45:44 作者:
php下利用ob_start來(lái)生成靜態(tài)頁(yè)面的方法,需要生成靜態(tài)的朋友可以參考下。
雖然方法很多,但使用起來(lái)簡(jiǎn)便容易的,我覺(jué)得還是先判斷已經(jīng)生成的首頁(yè)文件的生成時(shí)間和現(xiàn)有時(shí)間之間的差值,如果滿(mǎn)足某個(gè)值就開(kāi)始生成,這種方法比較來(lái)得容易,不多說(shuō)了,開(kāi)始吧!
在開(kāi)始之前還是提一下三個(gè)函數(shù)吧:"ob_start()、ob_end_clean()、ob_get_contents()"
ob_start():是打開(kāi)緩沖區(qū)的,就是要把您需要生成的靜態(tài)文件的內(nèi)容緩存在這里;
ob_get_contents():是讀出緩沖區(qū)里的內(nèi)容,下面有代碼為例;
ob_end_clean():這個(gè)比較重要,只有使用了這個(gè)函數(shù)后,緩沖區(qū)里的內(nèi)容才會(huì)讀取出來(lái);復(fù)制內(nèi)容到剪貼板代碼:
if(file_exists("./index.htm"))//看靜態(tài)index.htm文件是否存在
{
$time=time(); //文件修改時(shí)間和現(xiàn)在時(shí)間相差?的話(huà),直接導(dǎo)向htm文件,否則重新生成htm
if($time-filemtime("./index.htm")< 600)
{
header("Location:classhtml/main.htm"); }
}
//在你的開(kāi)始處加入ob_start();CHINAZ
//首頁(yè)內(nèi)容,就是你的動(dòng)態(tài)部分了
//在結(jié)尾加入ob_end_clean(),并把本頁(yè)輸出到一個(gè)變量中
$temp=ob_get_contents();
ob_end_clean();
//寫(xiě)入文件
$fp=fopen("./index.htm",'w');
fwrite($fp,$temp) or die('寫(xiě)文件錯(cuò)誤');
//echo"生成HTML完成!";
實(shí)例代碼:
<?php
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo '編程導(dǎo)航 dh.jb51.net';?></title>
</head>
<body>
<?php echo "dh.jb51.net";?>
</body>
</html>
<?php
$cacheStr=ob_get_contents();
$handle=fopen("jb51.html","w");
fwrite($handle, $cacheStr);
ob_clean();
?>
在開(kāi)始之前還是提一下三個(gè)函數(shù)吧:"ob_start()、ob_end_clean()、ob_get_contents()"
ob_start():是打開(kāi)緩沖區(qū)的,就是要把您需要生成的靜態(tài)文件的內(nèi)容緩存在這里;
ob_get_contents():是讀出緩沖區(qū)里的內(nèi)容,下面有代碼為例;
ob_end_clean():這個(gè)比較重要,只有使用了這個(gè)函數(shù)后,緩沖區(qū)里的內(nèi)容才會(huì)讀取出來(lái);復(fù)制內(nèi)容到剪貼板代碼:
復(fù)制代碼 代碼如下:
if(file_exists("./index.htm"))//看靜態(tài)index.htm文件是否存在
{
$time=time(); //文件修改時(shí)間和現(xiàn)在時(shí)間相差?的話(huà),直接導(dǎo)向htm文件,否則重新生成htm
if($time-filemtime("./index.htm")< 600)
{
header("Location:classhtml/main.htm"); }
}
//在你的開(kāi)始處加入ob_start();CHINAZ
//首頁(yè)內(nèi)容,就是你的動(dòng)態(tài)部分了
//在結(jié)尾加入ob_end_clean(),并把本頁(yè)輸出到一個(gè)變量中
$temp=ob_get_contents();
ob_end_clean();
//寫(xiě)入文件
$fp=fopen("./index.htm",'w');
fwrite($fp,$temp) or die('寫(xiě)文件錯(cuò)誤');
//echo"生成HTML完成!";
實(shí)例代碼:
復(fù)制代碼 代碼如下:
<?php
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo '編程導(dǎo)航 dh.jb51.net';?></title>
</head>
<body>
<?php echo "dh.jb51.net";?>
</body>
</html>
<?php
$cacheStr=ob_get_contents();
$handle=fopen("jb51.html","w");
fwrite($handle, $cacheStr);
ob_clean();
?>
您可能感興趣的文章:
- PHP生成HTML靜態(tài)頁(yè)面實(shí)例代碼
- 使用PHP實(shí)現(xiàn)生成HTML靜態(tài)頁(yè)面
- 比較詳細(xì)PHP生成靜態(tài)頁(yè)面教程
- php 生成靜態(tài)頁(yè)面的辦法與實(shí)現(xiàn)代碼詳細(xì)版
- 談PHP生成靜態(tài)頁(yè)面分析 模板+緩存+寫(xiě)文件
- php文章內(nèi)容分頁(yè)并生成相應(yīng)的htm靜態(tài)頁(yè)面代碼
- 方便實(shí)用的PHP生成靜態(tài)頁(yè)面類(lèi)(非smarty)
- php生成靜態(tài)頁(yè)面的簡(jiǎn)單示例
- PHP生成靜態(tài)頁(yè)面詳解
- php輸出控制函數(shù)和輸出函數(shù)生成靜態(tài)頁(yè)面
相關(guān)文章
php實(shí)現(xiàn)的mysqldb讀寫(xiě)分離操作類(lèi)示例
這篇文章主要介紹了php實(shí)現(xiàn)的mysqldb讀寫(xiě)分離操作類(lèi),結(jié)合實(shí)例形式分析了php針對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě)分離操作實(shí)現(xiàn)技巧,并給出了該封裝類(lèi)的具體使用方法,需要的朋友可以參考下2017-02-02解析zend studio中直接導(dǎo)入svn中的項(xiàng)目的方法步驟
本篇文章是對(duì)zend studio中直接導(dǎo)入svn中的項(xiàng)目的方法步驟進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP測(cè)試程序運(yùn)行時(shí)間的類(lèi)
今天,為了測(cè)試一斷程序的運(yùn)行時(shí)間,特意寫(xiě)了這么一個(gè)類(lèi),并添加了注釋?zhuān)M麑?duì)大家有所幫助2012-02-02PHP使用enqueue/amqp-lib實(shí)現(xiàn)rabbitmq任務(wù)處理
這篇文章主要為大家詳細(xì)介紹了PHP如何使用enqueue/amqp-lib實(shí)現(xiàn)rabbitmq任務(wù)處理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2024-03-03常見(jiàn)的四種POST 提交數(shù)據(jù)方式(小總結(jié))
這篇文章主要介紹了常見(jiàn)的四種POST 提交數(shù)據(jù)方式(小總結(jié))的相關(guān)資料,需要的朋友可以參考下2015-10-10php獲取微信基礎(chǔ)接口憑證Access_token
這篇文章主要為大家詳細(xì)介紹了php獲取微信基礎(chǔ)接口憑證Access_token,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08