注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿飘的博客

十里平湖霜满天 寸寸青丝愁华年

 
 
 

日志

 
 

php 最简单的生成静态页面  

2009-07-09 16:51:49|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
生成字符串一般两种方法:一是替换字符串,二是使用缓冲区。

一:
模板即尚未填充内容html文件。例如:
 temp.html

  Code:  
<HTML>
  <TITLE>{ title }</TITLE>
  <BODY>
     this is a { file } file's templets
  </BODY>
</HTML>

PHP处理:
 templetest.php

  Code:  
  $title = "拓迈国际测试模板";
  $file   = "TwoMax Inter test templet,
 $fp          = fopen ("temp.html","r");
  $content  = fread ($fp,filesize ("temp.html"));
  $content .= str_replace ("{ file }",$file,$content);
  $content .= str_replace ("{ title }",$title,$content);
  echo $content;
?>


二:
function createStaticPage($sourcePage,$objectPage)#来源文件,目标文件
{
#得到两个参数,一个是来源文件地址,一个是需要生成的静态页面地址
global $db; #数据库连接用的,在$sourcePage中需要用到

ob_start(); #打开缓冲区,相当于做了一个用来存放东西的箱子

include $sourcePage; #在缓冲区中释放页面,从这个代码中应该可以明白一点:那就是$sourcePage页面单独查看的时候,它是可以显示的!这是关键之所在,如果后面不加ob_end_clean()函数,那在执行程序的时候你看见$sourcePage页面的内容。

$cons=ob_get_contents(); #得到缓冲区中的内容,这里的内容就是HTML代码!这相当于把箱子里面的东西转给了一个人!

ob_end_clean(); #清除缓冲区的内容,把箱子里面的东西转给他人后,打扫卫生,不打扫卫生的后果是让他人可以看见箱子的东西,也即可以看见$sourcePage页面的内容

$fp=fopen($objectPage,"wb") or die("静态生成时打开文件".$objectPage."时出错");

fwrite($fp,$cons); #把HTML代码写入静态文件中!

fclose($fp);

return true;
}


静态页面也动态页面比较
动态页面原理:由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 ----- > 由服务器指定的PHP解析器对脚本进行解析形成HTML语言形式 ----> 将解析后的HTML语句以包的方式传回给浏览器。

动态页面原理:由客户端提出请求,请求某一页面 ----> WEB服务器确认并载入某一页面 ----> WEB服务器将该页面以包的形式传递回浏览器。

区别:动态页面需由WEB服务器的PHP解析器进行解析,而且通常还需连接数据库,进行数据库存取操作,然后才能形成HTML语言信息包;而静态页面,无须解 析,无须连接数据库,直接发送,可大大减轻服务器压力,提高服务器负载能力,大幅提供页面打开速度和网站整体打开速度。但其缺点是,不能动态地对请求进行 处理,服务器上必须确实存在该文件。
  评论这张
 
阅读(569)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017