欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

细说php生成静态文件之模板与缓存

程序员文章站 2022-06-08 17:30:21
...
  1. Create TABLE `bihtml` (
  2. `id` int(11) NOT NULL auto_increment,
  3. `szdtitle` varchar(16) NOT NULL,
  4. `szdcontent` text NOT NULL,
  5. PRIMARY KEY (`id`)
  6. ) TYPE
复制代码

获取当前的ID,并导入模板:

  1. ob_start();

  2. $id=_POST['id']
  3. if(!isset($id)&is_integer($id))
  4. {
  5. @$db=new mysqli('localhost','root','admin','bihtml');
  6. $result=$db->fetch_one_array("select * from szd_bi where id='$id'");
  7. if(!emptyempty($result))
  8. {
  9. $tmp->assign(array(
  10. "Szdtitle",htmlspecialchars($result['titles']),
  11. "Szdcontent",$result['titles']));
  12. }
  13. $tpl->display('default_1.tpl');
  14. $this_my_f= ob_get_contents(); //此处关键
  15. ob_end_clean();
  16. $filename = "$id.html";
  17. if(tohtmlfile_cjjer($filename,$this_my_f))
  18. echo "生成成功 $filename";
  19. else
  20. echo "生成识别";
  21. }
  22. }
  23. //把生成文件的过程写出函数

  24. function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content)
  25. {
  26. if (is_file ($file_cjjer_name)){
  27. @unlink ($file_cjjer_name);
  28. }
  29. $cjjer_handle = fopen ($file_cjjer_name,"w");
  30. if (!is_writable ($file_cjjer_name)){
  31. return false;
  32. }
  33. if (!fwrite ($cjjer_handle,$file_cjjer_content)){
  34. return false;
  35. }
  36. fclose ($cjjer_handle); //关闭指针
  37. return $file_cjjer_name;
  38. }
复制代码

四、说明 1)、建议添加数据时即生成静态页面,并考虑记录生成的文件名次和路径。 2)、php主要是 ob_starts()和 ob_get_contents生成静态页面时很有用,当然也可以考虑调出数据库直接替换模板里面的变量。 3)、模板引擎主要使用smarty。

您可能感兴趣的文章: php生成静态页面的三种方法与代码详解 php生成静态页面函数(php2html)的例子 php生成静态页面的方法(三个函数) php写的一个生成静态页面的类 虚拟主机上定时自动生成静态页面的方法 php生成静态文件的二种方法 php生成静态页面的详细教程 php生成静态html文件的原理分析 smarty生成静态页面的方法 了解php生成静态HTML文件的原理 PHP生成静态页面的方法 php生成静态html文件的三种方法