把php生成静态(html)页面程序代码

生成静态页面一般是把动态页面生成html页面,这样可以减少服务器负载也是现在各大网站常用的优化方法,下面我来分享一个把php生成静态(html)页面类.

  1. <?php
  2. class create_html {
  3. private $template;
  4. //模版
  5. private $file_name;
  6. //文件名
  7. private $array;
  8. //数据数组
  9. function __construct($file_name, $template, $array) {
  10. //构造类
  11. $this->template = $this->read_file($template, "r");
  12. //读取模板文件
  13. $this->file_name = $file_name;
  14. $this->array = $array;
  15. //数据数据
  16. $this->html();
  17. //生成html
  18. }
  19. function html() {
  20. //生成html
  21. while (ereg ("{([0-9]+)}", $this->template, $regs)) {
  22. //循环模版中所能的{1}…..
  23. $num = $regs[1];
  24. //得到1、2、3序列
  25. $this->template = ereg_replace("{".$num."}", $this->array[$num], $this->template);
  26. //把数据替换成html内容
  27. $this->write_file($this->file_name, $this->template, "w+");
  28. //生成HTML文件
  29. }
  30. }
  31. function read_file($file_url, $method = "r") {
  32. //读取文件
  33. $fp = @fopen($file_url, $method);
  34. //打开文件
  35. $file_data = fread($fp, filesize($file_url));
  36. //读取文件信息
  37. return $file_data;
  38. }
  39. function write_file($file_url, $data, $method) {
  40. //写入文件
  41. $fp = @fopen($file_url, $method);
  42. //打开文件
  43. @flock($fp, LOCK_EX);
  44. //锁定文件
  45. $file_data = fwrite($fp, $data);
  46. //写入文件
  47. fclose($fp);
  48. //关闭文件
  49. return $file_data;
  50. }
  51. }
  52. #例子———————-
  53. #读取邮件回复模版———————————————————————————-
  54. $title = "标题";
  55. $navigation = "浏览器";
  56. $happy_origin = "作者";
  57. $name = "test2.htm";
  58. $template = "default_tmp.php";
  59. //模版中用{1}{2}来替换
  60. $daytype = array(1 => $title,
  61. //开源代码phpfensi.com
  62. 2 => $navigation,
  63. 3 => $happy_origin);
  64. $htm = new Restore_email($template, $daytype);
  65. echo $htm->pint();
  66. ?>