關於用PHP如何?全站靜態化處理的內容,這樣讓php產生HTML純靜態網頁,讓訪問速度更快。
| 代碼如下 |
複製代碼 |
//在開始處加入 ob_start(); ob_start(); //以下是代碼 //在結尾加入 ob_end_clean(),並把本頁輸出到一個變數中 $temp = ob_get_contents(); ob_end_clean(); //寫入檔案 $fp = fopen(‘檔案名稱','w'); fwrite($fp,$temp) or die(‘寫檔案錯誤'); ?> |
這隻是最基本的方法,還不是很實用,因為網站是要更新的,要定期重建HTML
下面是我用的方法:
| 代碼如下 |
複製代碼 |
if(file_exists(“demo.html”)) { $time = time(); //檔案修改時間和現在時間相差半小時一下的話,直接導向html檔案,否則重建html if($time - filemtime(“demo.html”) < 30*60) { header(“Location:demo.html”); } } //在開始處加入 ob_start(); ob_start(); //頁面的詳細內容 //在結尾加入 ob_end_clean(),並把本頁輸出到一個變數中 $temp = ob_get_contents(); ob_end_clean(); //寫入檔案 $fp = fopen(‘demo.html','w'); fwrite($fp,$temp) or die(‘寫檔案錯誤'); //重新導向 header(“Location:demo.html”); |
上面的方法在大批產生時可能不是最好的辦法了
| 代碼如下 |
複製代碼 |
<?php if($_GET[pg]==''){ $aa=1; }else{ $aa=$_GET[pg]; } include("admin/conn.php"); require_once("page.php"); $result=mysql_query("select * from 2carsell "); $totle=mysql_num_rows($result); $pagelist = $_GET[t]; if($_GET[t]==''){ $pagelist='200'; }else{ $pagelist=$_GET[t]; } $pager = new Pager($totle,$pagelist); $datastat=" 共 <b>".$pager->countall."</b> 條,每次產生 <b>".$pager->countlist."</b> 條,共需產生 <b>".$pager->page."</b> 次";//資料統計 $bb=$pager->page; $pagenav=$pager->backstr.$pager->thestr.$pager->nextstr; $limitFrom = $pagelist*($pager->pg-1); $result=mysql_query("select * from 2carsell ORDER BY id DESC limit $limitFrom,$pagelist"); ?> <center><div style="font-size:14px;"><b>第 <font color=red><?echo $aa?></font > 次頁面產生中..<? echo $datastat?></b></div><br> <? print "<center><textarea name=textarea class=textarea style='width:520px;height:455px'>"; while($datauser=mysql_fetch_array($result)){ $iid=$datauser[id]; $html = file_get_contents("/moban.php?id=".$iid.""); $sql="select * from 2carsell where id=$iid"; $data=mysql_fetch_array(mysql_query($sql)); $path=date("Ym",$data[PutDate]); $testdir="html/".$path; if(file_exists ($testdir)): else: mkdir ($testdir, 0777); echo "目錄".$testdir."建立成功!<br>"; endif; $filename = "html/$path/sell_$iid.html";
// 使用寫入模式開啟$filename if (!$handle = fopen($filename, 'w')) { print "不能開啟檔案 $filename"; exit; } if (is_writable($filename)) { // 將$html寫入到我們開啟的檔案中。 if (!fwrite($handle, $html)) { print "不能寫入到檔案 $filename"; exit; } print "檔案 $filename 更新成功!nr"; fclose($handle); } else { print "檔案 $filename 不可寫"; } ?> <? }?> </textarea> <br><br> <div style="font-size=12px"><? echo $datastat." "?></div><br><br> <? $aa=$aa+1; if($aa>$bb){ echo '<font color=blue>恭喜,所有頁面產生完畢!</font>'; echo "<script>alert('所有文檔產生/更新完畢!')</script>"; }else{ echo "<Script> window.location='make.php?t=$pagelist&pg=$aa'; </script>"; } ?> |
說明:原動態地址為 moban.php?id=1 ,產生後地址為 html/200808/sell_1.html 。page.php為分頁程式,本部落格中有發布。
頁面使用方式,將本代碼儲存為make.php,使用方法為瀏覽器訪問 make.php?t=數量&pg=頁面;例如 make.php?t=300&pg=2,即每次產生300條資料,從資料列表第2頁開始產生,即跳過前面300條。如果不加任何參數,直接存取make.php,則預設每次產生200條,從第一頁開始產生。