php静态文件生成类实例分析

这篇文章主要介绍了php静态文件生成类,以实例形式较为详细的分析了使用php生成静态文件的方法及使用技巧,需要的朋友可以参考下

本文实例讲述了php静态文件生成类,分享给大家供大家参考。

具体实现方法如下:

  1. defined('phpfensi') or die(header("http/1.1 403 not forbidden"));
  2. class include_createstatic
  3. {
  4. private $htmlpath = '';
  5. private $path = '';
  6. public $monthpath = '';
  7. private $listpath = '';
  8. private $content = '';
  9. private $filename = '';
  10. private $extname = '.html';
  11. public function createhtml($type,$desname,$content)
  12. {
  13. $this->htmlpath = getappinf('htmlpath');
  14. if (!file_exists($this->htmlpath))
  15. {
  16. @mkdir($this->htmlpath);
  17. }
  18. $this->path = $this->htmlpath.$this->monthpath.'/';
  19. if (!file_exists($this->path))
  20. {
  21. @mkdir($this->path);
  22. }
  23. $this->listpath = $this->htmlpath.'list/';
  24. if (!file_exists($this->listpath))
  25. {
  26. @mkdir($this->listpath);
  27. }
  28. switch ($type)
  29. {
  30. case 'index':
  31. $this->filename = $desname;
  32. break;
  33. case 'list':
  34. $this->filename = $this->listpath.$desname;
  35. break;
  36. case 'view':
  37. $this->filename = $this->path.$desname;
  38. break;
  39. }
  40. $this->filename .= $this->extname;
  41. $this->content = $content;
  42. }
  43. public function write()
  44. {
  45. $fp=fopen($this->filename,'wb');
  46. if (!is_writable($this->filename))
  47. {
  48. return false;
  49. }
  50. if (!fwrite($fp,$this->content))
  51. {
  52. return false;
  53. }
  54. fclose($fp);
  55. return $this->filename;
  56. }
  57. }
  58. //方法二
  59. if(file_exists("./index.htm"))//看静态index.htm文件是否存在
  60. {
  61. $time=time();
  62. //文件修改时间和现在时间相差?的话,直接导向htm文件,否则重新生成htm
  63. if(time-filemtime("./index.htm")< 600)
  64. {
  65. header("location:classhtml/main.htm");
  66. }
  67. }
  68. //在你的开始处加入ob_start();
  69. ob_start();
  70. //首页内容,就是你的动态部分了
  71. //在结尾加入ob_end_clean(),并把本页输出到一个变量中
  72. $temp=ob_get_contents();
  73. ob_end_clean();
  74. //写入文件
  75. $fp=fopen("./index.htm",'w');
  76. fwrite(fp,temp) or die('写文件错误');
  77. //echo"生成html完成!";