关于静态模版 就是把php的输出写到一个文件里 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还是挺有用的,前段时间写rss用的就是这种方法。 文章相关段落如下:来,让我们看看能用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呢? 这是ob函数组的一个应用,并非生成静态页面一定要用ob函数 他的作用是缓存php的输出,即在ob_start()后php的输出都转向到缓冲区而不发往客户 要是没有ob_start()下面的代码有什么用???$content = ob_get_contents();//取得php页面输出的全部内容你怎么写*.html代码?? 我不单指ob_start();我是指所有的ob系列函数在这里的使用。我直接使用fread或file来实现不就行了?用ob系列函数有什么特别的优点吗?(别跟我说就是buffer) ob_functions是输出控制函数组。在php中echo、print、printf等输出函数在执行时是直接将其结果送往系统的标准输出设备的当使用ob时,这些输出将被重定向的缓冲区,而不被直接输出。一个例外是http头类函数的输出不被缓存谁也没有强制你使用ob函数,你也不必要因别人使用而说三道四! 我没有因别人使用说三道四我只想知道用ob来进行静态模板有什么优点。OK?不要再跟我说什么buffer啊之类的,这个我懂。 这只是生成静态页面的一种方法,当然你也可选择其它方法,你使用fread和fwrite时除非有静态模板,不然你读的都是PHP源代码,怎么获得生成后的数据?又怎么能将生成后的数据生成静态页面?使用ob函数就可以得到你PHP的执行后的结果。 和mysql_fetch_array()结下的不解之缘..... 关于ajax无刷新分页遇到的问题,忘大侠指点!! PHP流程控制练习代码 php这里的等号是什么意思 时区设置问题`. 如何调用页面? 简捷PHP数组赋值方法详解 问个php.ini配置问题 网络编程,路在何方 我在表单前用了SESSION,然后提交表单,由于填写错误回头时表单原来填写的东东都消失了。如何才能防止表单内容呢? 请问,当用户请求我的网站上不存在的网页的时候,自动导向到我的错误处理网页上 怎么得到变量的名字?
来,让我们看看能用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呢?
缓存php的输出,即在ob_start()后php的输出都转向到缓冲区而不发往客户
$content = ob_get_contents();//取得php页面输出的全部内容
你怎么写*.html代码??
我是指所有的ob系列函数在这里的使用。
我直接使用fread或file来实现不就行了?用ob系列函数有什么特别的优点吗?(别跟我说就是buffer)
在php中echo、print、printf等输出函数在执行时是直接将其结果送往系统的标准输出设备的
当使用ob时,这些输出将被重定向的缓冲区,而不被直接输出。一个例外是http头类函数的输出不被缓存谁也没有强制你使用ob函数,你也不必要因别人使用而说三道四!
你使用fread和fwrite时除非有静态模板,
不然你读的都是PHP源代码,怎么获得生成后的数据?
又怎么能将生成后的数据生成静态页面?
使用ob函数就可以得到你PHP的执行后的结果。