CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

关于静态模版

楼主surfchen(冲浪)2004-08-01 01:28:03 在 Web 开发 / PHP 提问

我看到网上有篇文章是说用OB来实现静态模版的,我不理解。  
  各位能否给我详细的讲解一下?  
  <?php    
  ob_start();//打开缓冲区    
  ?>    
  php页面的全部输出    
  <?    
  $content   =   ob_get_contents();//取得php页面输出的全部内容    
  $fp   =   fopen(“output00001.html”,   “w”);   //创建一个文件,并打开,准备写入    
  fwrite($fp,   $content);   //把php页面的内容全部写入output00001.html,然后……    
  fclose($fp);    
  ?> 问题点数:100、回复次数:16Top

1 楼syre(神仙)回复于 2004-08-01 11:00:34 得分 10

就是把php的输出写到一个文件里Top

2 楼ice_berg16(寻梦的稻草人)回复于 2004-08-01 11:04:22 得分 20

有什么不明白的?就是生成静态页面罢了Top

3 楼hlddn(西藏的那片天)回复于 2004-08-01 16:53:46 得分 10

还是挺有用的,前段时间写rss用的就是这种方法。Top

4 楼surfchen(冲浪)回复于 2004-08-01 17:47:44 得分 0

文章相关段落如下:  
  来,让我们看看能用ob系列函数做些什么……        
   
  一、   静态模版技术        
   
  简介:所谓静态模版技术就是通过某种方式,使得用户在client端得到的是由PHP产生的html页      
  面。如果这个html页面不会再被更新,那么当另外的用户再次浏览此页面时,程序将不会再调用      
  PHP以及相关的数据库,对于某些信息量比较大的网站,例如sina,163,sohu。类似这种的技术带      
  来的好处是非常巨大的。        
   
  我所知道的实现静态输出的有两种办法:        
  <1>.通过y10k修改的phplib的一个叫template.inc.php类实现。        
  <2>.使用ob系列函数实现。        
  对于第一种方法,因为不是这篇文章所要研究的问题,所以不再赘述。        
  我们现在来看一看第二种方法的具体实现:        
  Example   4.        
  -------------------------------------------------------------------------------------      
  ---------------------------------        
  ob_start();//打开缓冲区        
  ?>        
  php页面的全部输出        
  $content   =   ob_get_contents();//取得php页面输出的全部内容        
  $fp   =   fopen(“output00001.html”,   “w”);   //创建一个文件,并打开,准备写入        
  fwrite($fp,   $content);   //把php页面的内容全部写入output00001.html,然后……        
  fclose($fp);        
  ?>        
  -------------------------------------------------------------------------------------      
  ---------------------------------        
  这样,所谓的静态模版就很容易的被实现了……        
   
  ————————————————————————————————————  
  我所不理解的是,为什么这里非要用ob呢?Top

5 楼xuzuning(唠叨)回复于 2004-08-02 08:01:47 得分 0

这是ob函数组的一个应用,并非生成静态页面一定要用ob函数  
  Top

6 楼surfchen(冲浪)回复于 2004-08-02 10:32:31 得分 0

但是在这里OB有什么用呢?Top

7 楼surfchen(冲浪)回复于 2004-08-03 17:47:32 得分 0

up一下Top

8 楼xuzuning(唠叨)回复于 2004-08-03 17:57:15 得分 20

他的作用是  
  缓存php的输出,即在ob_start()后php的输出都转向到缓冲区而不发往客户Top

9 楼surfchen(冲浪)回复于 2004-08-03 18:06:07 得分 0

我知道它原有的作用......但是在这里它有什么用?值得用吗?Top

10 楼mistjin(今天天气不错)回复于 2004-08-04 10:50:42 得分 15

要是没有ob_start()下面的代码有什么用???  
  $content   =   ob_get_contents();//取得php页面输出的全部内容  
  你怎么写*.html代码??  
  Top

11 楼surfchen(冲浪)回复于 2004-08-04 10:57:29 得分 0

我不单指ob_start();  
  我是指所有的ob系列函数在这里的使用。  
  我直接使用fread或file来实现不就行了?用ob系列函数有什么特别的优点吗?(别跟我说就是buffer)Top

12 楼xuzuning(唠叨)回复于 2004-08-04 11:38:36 得分 5

ob_functions是输出控制函数组。  
  在php中echo、print、printf等输出函数在执行时是直接将其结果送往系统的标准输出设备的  
  当使用ob时,这些输出将被重定向的缓冲区,而不被直接输出。一个例外是http头类函数的输出不被缓存  
   
  谁也没有强制你使用ob函数,你也不必要因别人使用而说三道四!  
  Top

13 楼surfchen(冲浪)回复于 2004-08-04 11:45:54 得分 0

我没有因别人使用说三道四。。。我只想知道用ob来进行静态模板有什么优点。OK?不要再跟我说什么buffer啊之类的,这个我懂。Top

14 楼ice_berg16(寻梦的稻草人)回复于 2004-08-04 12:00:58 得分 20

这只是生成静态页面的一种方法,当然你也可选择其它方法,  
  你使用fread和fwrite时除非有静态模板,  
  不然你读的都是PHP源代码,怎么获得生成后的数据?  
  又怎么能将生成后的数据生成静态页面?  
  使用ob函数就可以得到你PHP的执行后的结果。  
  Top

15 楼surfchen(冲浪)回复于 2004-08-04 12:16:57 得分 0

OK   ~~结帖。。Top

16 楼litao3029(凡人梦)回复于 2004-10-22 17:26:17 得分 0

upTop

相关问题

  • VC+模版类+静态库的问题
  • 模版类静态变量的初始化问题
  • 模版
  • 重写URL生成的静态页面跟后台程序通过模版动态生成的HTML页面,有什么分别?
  • 关于模版
  • 静态
  • 关于类模版
  • 类模版问题
  • datagrid 模版的小问题?
  • 关于模版的使用

关键词

  • 函数
  • 模版
  • 页面
  • php
  • 内容
  • 技术
  • start
  • html
  • 静态
  • ob

得分解答快速导航

  • 帖主:surfchen
  • syre
  • ice_berg16
  • hlddn
  • xuzuning
  • mistjin
  • xuzuning
  • ice_berg16

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo