用PHP的ob_start() 控制您的浏览器cache_php技巧

输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。
我们先举一个简单的例子,让大家对Output Control有一个大致的印象:
Example 1.

复制代码 代码如下:

<?php
ob_start(); //打开缓冲区
echo \"Hellon\"; //输出
header("location:index.php"); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器
?>

所有对header()函数有了解的人都知道,这个函数会发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会提示出错。如果我们去掉第一行的ob_start(),再执行此程序,我们会发现得到了一条错误提示:"Header had all ready send by"!但是加上ob_start,就不会提示出错,原因是当打开了缓冲区,echo后面的字符不会输出到浏览器,而是保留在服务器,直到你使用 flush或者ob_end_flush才会输出,所以并不会有任何文件头输出的错误!
一、 相关函数简介:
1、Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。
2、ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
3 、ob_get_contents :返回内部缓冲区的内容。
使用方法:string ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
4、ob_get_length:返回内部缓冲区的长度。
使用方法:int ob_get_length(void)
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。
5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
使用方法:void ob_end_flush(void)
说明:这个函数发送输出缓冲区的内容(如果有的话)。
6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
使用方法:void ob_end_clean(void)
说明:这个函数不会输出内部缓冲区的内容而是把它删除!
7、ob_implicit_flush:打开或关闭绝对刷新
使用方法:void ob_implicit_flush ([int flag])
说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()
二、深入了解:
1. 关于Flush函数:
这个函数在PHP3中就出现了,是一个效率很高的函数,他有一个非常有用的功能就是刷新browser的cache.我们举一个运行效果非常明显的例子来说明flush.
Example 2.

复制代码 代码如下:

<?php
for($i = 1; $i <= 300; $i++ ) print(" ");
// 这一句话非常关键,cache的结构使得它的内容只有达到一定的大小才能从浏览器里输出
// 换言之,如果cache的内容不达到一定的大小,它是不会在程序执行完毕前输出的。经
// 过测试,我发现这个大小的底限是256个字符长。这意味着cache以后接收的内容都会
// 源源不断的被发送出去。
For($j = 1; $j <= 20; $j++) {
echo $j."
";
flush(); //这一部会使cache新增的内容被挤出去,显示到浏览器上
sleep(1); //让程序"睡"一秒钟,会让你把效果看得更清楚
}
?>

时间: 2024-10-29 11:46:47

用PHP的ob_start() 控制您的浏览器cache_php技巧的相关文章

用PHP的ob_start()控制您的浏览器cache

用PHP的ob_start();控制您的浏览器cache! Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1. CODE<?phpob_start();

用PHP的ob_start();控制您的浏览器cache!_php技巧

Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象: Example 1. CODE<?php ob_start(); //打开缓冲区 echo \"Hellon\&qu

用PHP控制用户的浏览器--ob*函数的使用说明_php技巧

用PHP控制用户的浏览器--ob*函数的使用 /google 的广告条--> Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1. <?php ob_st

用PHP控制用户的浏览器--ob*函数的使用

函数|控制|浏览器 用PHP控制用户的浏览器--ob*函数的使用 Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1. <?php ob_start();

控制PPT幻灯片切换的技巧

  控制PPT幻灯片切换的技巧         1.打开演示文稿,在"幻灯片放映"选项卡的"开始放映幻灯片"组中单击"从头开始"按钮开始放映幻灯片,如图1所示.   图1 从头开始放映幻灯片 注意 这里,按"F5"键将能实现从头开始放映演示文稿;如果单击"开始放映幻灯片"组中的"从当前幻灯片开始"按钮或按"Shift+F5"键,将从选择的幻灯片开始播放演示文稿. 2.

WiseIE浏览器设置技巧

本教程为大家介绍WiseIE浏览器设置技巧,将其变得更具个性化. 1.怎么改变网页的背景? 进入"个性化"进行设置,下方有"网页背景"的设置项,你可将网页背景设置为图片或者单一颜色. 2.可以改变网页上的字体吗? 可以的,只要在"个性化"内设置"网页文字",字体和字色都可设置为自己喜欢的样子. 3.为什么有时点击网页网页会一下在关闭? 那是因为你快速双击了网页,WiseIE浏览器比较灵敏,双击网页变回快速关闭网页.若想在双击网

安卓版Chrome浏览器使用技巧

  Chrome是一款全球非常受欢迎的浏览器,无论是在PC还是在安卓设备上,我们经常都可以见到谷歌chrome浏览器身影,其轻快的浏览方式和友好的操作界面,令人印象深刻.由于国内浏览器众多,很多手机用户对Chrome浏览器了解的并不多,下面小编就来分享一下手机中的Chrome浏览器使用技巧,让你真正爱上Chrome. 一.优秀的网页压缩和省流量模式 我们都知道手机浏览网页很大一个问题就PC站点的网页用手机看起来字体小.排版乱而且还不允许缩放等等问题,但是chrome内置"强制缩放"功能

你可能忽视的iOS 8 Safari浏览器小技巧

  掐指算来iOS 8正式版发布已经有一季之久,而iPhone 6玩机也两个月有余,是时候和大家分享一些关于新系统下使用心得,本文为你带来几个容易让人忽略的Safari浏览器小技巧.首先常规报一下小编的iOS设备信息,美版iPhone 6 64G(Gold,A1549),iOS版本8.1.1,未越狱. 顺便也提一下为什么小编购买美版的诸多原因吧!首先,肯定是网络制式问题,小编掉联通的坑良久,美版支持联通和电信2/3/4G网络(已实测),以及移动2G(and EDGE),这里网络完全适用.再者,就

用PHP ob_start()控制浏览器cache、生成html实现代码_php技巧

输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象: Example 1. PHP代码 复制代码 代码如下: <? ob_start(); //打开缓冲区 echo "Hello\n"; //输出 header("location:index.php"); //把浏览器重定向到