当前位置:首页 > PHP教程 > php应用 > 列表

PHP生成HTML纯静态网页程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-28 10:40:24 浏览: 评论:0 

关于用PHP如何实现全站静态化处理的内容,这样让php生成HTML纯静态网页,让访问速度更快,代码如下:

  1. //在开始处加入 ob_start(); 
  2. ob_start(); 
  3.  
  4. //以下是代码 
  5. //在结尾加入 ob_end_clean(),并把本页输出到一个变量中 
  6. $temp = ob_get_contents(); 
  7. ob_end_clean(); 
  8.  
  9. //写入文件 
  10. $fp = fopen(‘文件名','w'); 
  11. fwrite($fp,$tempor die(‘写文件错误'); 

这只是最基本的方法,还不是很实用,因为网站是要更新的,要定期重新生成HTML,下面是我用的方法,代码如下:

  1. if(file_exists(“demo.html”)) 
  2. $time = time(); 
  3.  
  4. //文件修改时间和现在时间相差半小时一下的话,直接导向html文件,否则重新生成html 
  5. if($time - filemtime(“demo.html”) < 30*60) 
  6. header(“Location:demo.html”); 
  7. //在开始处加入 ob_start(); 
  8. ob_start(); 
  9.  
  10. //页面的详细内容 
  11. //在结尾加入 ob_end_clean(),并把本页输出到一个变量中 
  12. $temp = ob_get_contents(); 
  13. ob_end_clean(); 
  14.  
  15. //写入文件 
  16. $fp = fopen(‘demo.html','w'); 
  17. fwrite($fp,$tempor die(‘写文件错误'); 
  18.  
  19. //重新导向 
  20. header(“Location:demo.html”); 

上面的方法在大批生成时可能不是最好的办法了,我们来看另一段代码:

  1. <?php  
  2. if($_GET[pg]==''){  
  3. $aa=1;  
  4. }else{  
  5. $aa=$_GET[pg];  
  6. }  
  7. include("admin/conn.php");  
  8. require_once("page.php");  
  9. $result=mysql_query("select * from 2carsell ");  
  10. $totle=mysql_num_rows($result);  
  11. $pagelist = $_GET[t];  
  12. if($_GET[t]==''){  
  13. $pagelist='200';  
  14. }else{  
  15. $pagelist=$_GET[t];  
  16. }  
  17. $pager = new Pager($totle,$pagelist);  
  18. $datastat=" 共 <b>".$pager->countall."</b> 条,每次生成 <b>".$pager->countlist."</b> 条,共需生成 <b>".$pager->page."</b> 次";//数据统计  
  19. $bb=$pager->page;  
  20. $pagenav=$pager->backstr.$pager->thestr.$pager->nextstr;  
  21. $limitFrom = $pagelist*($pager->pg-1);  
  22. $result=mysql_query("select * from 2carsell ORDER BY id DESC limit $limitFrom,$pagelist");  
  23. ?>  
  24. <center><div style="font-size:14px;"><b>第 <font color=red><?echo $aa?></font > 次页面生成中..<? echo $datastat?></b></div><br>  
  25. <?  
  26. print "<center><textarea name=textarea class=textarea style='width:520px;height:455px'>";  
  27. while($datauser=mysql_fetch_array($result)){ 
  28.  
  29. $iid=$datauser[id];  
  30. $html = file_get_contents("/moban.php?id=".$iid."");  
  31. $sql="select * from 2carsell where id=$iid";  
  32. $data=mysql_fetch_array(mysql_query($sql));  
  33. $path=date("Ym",$data[PutDate]);  
  34. $testdir="html/".$path;  
  35. if(file_exists ($testdir)):  
  36. else:  
  37. mkdir ($testdir, 0777);  
  38. echo "目录".$testdir."创建成功!<br>";  
  39. endif
  40.  
  41.  
  42. $filename = "html/$path/sell_$iid.html"
  43.  
  44. // 使用写入模式打开$filename  
  45. if (!$handle = fopen($filename'w')) {  
  46. print "不能打开文件 $filename";  
  47. exit;  
  48.  
  49. if (is_writable($filename)) { 
  50.  
  51. // 将$html写入到我们打开的文件中。  
  52. if (!fwrite($handle$html)) {  
  53. print "不能写入到文件 $filename";  
  54. exit;  
  55.  
  56. print "文件 $filename 更新成功!nr"
  57.  
  58. fclose($handle); 
  59.  
  60. else {  
  61. print "文件 $filename 不可写";  
  62. }  
  63. ?>  
  64. <? }?>  
  65. </textarea>  
  66. <br><br> 
  67. <div style="font-size=12px"><? echo $datastat." "?></div><br><br>  
  68. <?  
  69. $aa=$aa+1;  
  70. if($aa>$bb){  
  71. echo '<font color=blue>恭喜,所有页面生成完毕!</font>';  
  72. echo "<script>alert('所有文档生成/更新完毕!')</script>";  
  73. }else{  
  74. echo "<Script> window.location='make.php?t=$pagelist&pg=$aa'; </script>";  
  75. }  
  76. ?> 

说明:原动态地址为 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条,从第一页开始生成.

Tags: PHP生成HTML 纯静态网页

分享到: