>  기사  >  백엔드 개발  >  PHP에서 생성된 정적 파일의 템플릿 및 캐싱에 대해 자세히 설명

PHP에서 생성된 정적 파일의 템플릿 및 캐싱에 대해 자세히 설명

WBOY
WBOY원래의
2016-07-25 09:05:48814검색
  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으로 문의하세요.