首页  >  文章  >  后端开发  >  细说php生成静态文件之模板与缓存

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

WBOY
WBOY原创
2016-07-25 09:05:48816浏览
  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文件的三种方法



声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn