用PHP的ob_start();
程序代码 程序代码
1. 关于Flush函数: 程序代码 程序代码 注:如果在程序的首部加入ob_implicit_flush()打开绝对刷新,就可以在程序中不再使用flush(),这样做的好处是:提高效率! 2. 关于ob系列函数: 比如你用得到服务器和客户端的设置信息,但是这个信息会因为客户端的不同而不同,如果想要保存phpinfo()函数的输出怎么办呢?在没有缓冲区控制之前,可以说一点办法也没有,但是有了缓冲区的控制,我们可以轻松的解决:
用以上的方法,就可以把不同用户的phpinfo信息保存下来,这在以前恐怕没有办法办到!其实上面就是将一些"过程"转化为"函数"的方法! 可能现在大家对ob_start()的功能有了一定的了解,上面的一个例子看似简单,但实际上已经掌握了使用ob_start()的要点。 来,让我们看看能用ob系列函数做些什么…… 一、 静态模版技术 简介:所谓静态模版技术就是通过某种方式,使得用户在client端得到的是由PHP产生的html页面。如果这个html页面不会再被更新,那么当另外的用户再次浏览此页面时,程序将不会再调用PHP以及相关的数据库,对于某些信息量比较大的网站,例如sina,163,sohu。类似这种的技术带来的好处是非常巨大的。 我所知道的实现静态输出的有两种办法:
二、 捕捉输出 以上的Example 4.是一种最简单的情况,你还可以在写入前对$content进行操作…… 程序代码 程序代码
以上这个例子的用途不是很大,不过很典型$code的本身就是一个含有变量的输出页面,而这个例子用eval把$code中的变量替换,然后对输出结果再进行输出捕捉,再一次的进行处理…… Example 6. 加快传输
Not compress length: \".strlen($Contents); ** Filename......: gzdoc.php ** Last changed..: 18/10/2000 ** Requirments...: PHP4 >= 4.0.1 ** PHP was configured with --with-zlib[=DIR] ** Notes.........: Dynamic Content Acceleration compresses ** the data transmission data on the fly ** code by sun jin hu (catoc) <[email protected]> ** Most newer browsers since 1998/1999 have ** been equipped to support the HTTP 1.1 ** standard known as \"content-encoding.\" ** Essentially the browser indicates to the ** server that it can accept \"content encoding\" ** and if the server is capable it will then ** compress the data and transmit it. The ** browser decompresses it and then renders ** the page. ** ** Modified by John Lim ([email protected]) ** based on ideas by Sandy McArthur, Jr ** Usage........: ** No space before the beginning of the first \'** ------------Start of file---------- ** |** | include(\'gzdoc.php\'); ** |? > ** | ** |... the page ... ** | ** |** | gzdocout(); ** |? > ** -------------End of file----------- */ ob_start(); ob_implicit_flush(0); function CheckCanGzip(){ global $HTTP_ACCEPT_ENCODING; if (headers_sent() || connection_timeout() || connection_aborted()){ return 0; } if (strpos($HTTP_ACCEPT_ENCODING, \'x-gzip\') !== false) return \"x-gzip\"; if (strpos($HTTP_ACCEPT_ENCODING,\'gzip\') !== false) return \"gzip\"; return 0; } /* $level = compression level 0-9, 0=none, 9=max */ function GzDocOut($level=1,$debug=0){ $ENCODING = CheckCanGzip(); if ($ENCODING){ print \"nn\"; $Contents = ob_get_contents(); ob_end_clean(); if ($debug){ $s = \" |