PHP中ob_start() ob_end_flush()的作用
程序员文章站
2022-05-12 09:05:12
...
ob_start() ob_end_flush()的作用
PHP4的新函数介绍-输出信息控制函数
这些函数可以让你控制你的脚本输出的内容.可以用于许多不同的情况,特别是在你的脚本已经输出信息后需要发送文件头新的情况.输出控制函数不对使用header()或setcookie()发送的文件头信息产生影响,只对那些类似于echo()和PHP代码的数据块有作用.
例1.控制输出
ob_start(); echo"Hello "; setcookie("cookiename","cookiedata"); ob_end_flush();
在上面的例子中,使用echo()的输出内容将会保存在输出缓冲区中,直到调用了ob_end_flush().这样做有意义的地方是,调用setcookie()的内容被成功的存储在cookie里面而不会引起错误.(正常情况下,你不可以在有数据已经发送后再发送文件头信息到用户浏览器.)
相关函数header()andsetcookie().
函数列表
flush?刷新输出缓冲区
保存在输出缓冲区的内容会被发送到浏览器
ob_start?打开输出缓冲区
这样所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面
ob_get_contents?返回输出缓冲区的内容
如果你想以后处理输出的内容,可以调用这个函数保留一个备份
ob_get_length?返回输出缓冲区的内容长度
ob_end_flush?结束(发送)输出缓冲区的内容,关闭输出缓冲区
ob_end_clean?删除(放弃)输出缓冲区的内容,关闭输出缓冲区
如果你的程序发现输出内容有问题,可以放弃所有输出内容,可以防止泄漏某些秘密信息
ob_implicit_flush?打开或关闭直接刷新
打开后,每个脚本输出都直接发送到浏览器,不再需要调用flush()