outbuffer 输出缓冲的理解
来源:互联网 发布:鲁东大学网络教育报名 编辑:程序博客网 时间:2024/05/01 00:19
在header和setcookie之前有任何的输出就会有警告错误, 如Warning: Cannot modify header information - headers already sent by
所以当脚本有任何输出的时候, php会先发送header信息给客服端, 然后发送输出内容,(即http协议中的主体内容),这是如果你就不可能对已经发送的header信息进行任何的修改了,所以我们就不可能利用header 和setcookie等修改header的函数做任何事情了!
解决办法: php的outbuffer 输出缓冲,php的输出缓冲是这样的 ,将当前脚本的所有输出内容都放到outbuffer里面,当程序执行完毕之后 将header和outbuffer一并发送给客户端。
<?php
ob_start();
echo "test";
header("content-type:text/html;charset=utf-8");
setcookie();
?>
这样的话 在header和setcookie前 echo输出将不回出现 warning:cannot modify;
<?php
ob_start();
echo "you are beautyful";
header("content-type:text/html;charset=utf-8");
$length = strlen(ob_get_contents());
ob_end_clean();
echo $length;
?>
将输出17, 语句的字节数, 而you are beautyful 没有输出
关于outbuffer还有一些函数:
ob_flush()
发送output buffer(输出缓冲)
ob_end_flush()
发送output buffer(输出缓冲)并禁用output buffering机制。
ob_end_clean()
清除output buffer但不发送,并禁用output buffering。
ob_get_contents()
将当前的output buffer返回成一个字符串。允许你处理脚本发出的任何输出。
ob_get_clean()
将当前的output buffer返回成一个字符串。允许你处理脚本发出的任何输出,并禁用output buffering机制。
- outbuffer 输出缓冲的理解
- perl的输出缓冲
- 缓冲流的理解
- surfaceview 双缓冲的理解
- 缓冲输出
- 缓冲输出
- 从一个缓冲到另一个缓冲的输出
- outputbuffer输出缓冲函数的妙用
- Output Buffer (输出缓冲)函数的妙用
- ASP.NET的页面输出缓冲
- 重定向输出遇到的缓冲问题
- 重定向输出遇到的缓冲问题 .
- linux c printf 的缓冲输出
- 什么是行缓冲?printf输出的条件
- 关于输出缓冲ob_start()的作用
- fork举例和行缓冲全缓冲的理解
- Unix网络编程:关于“进程”的输出缓冲 & “socket”的输出缓冲
- 对双缓冲技术的一点理解!
- 新人报道
- Doxygen经验谈
- 原型模式(Prototype)
- PL/SQL deverloper 中文编码问题
- 砝码分盐问题——从数学和计算机的角度分析(3)
- outbuffer 输出缓冲的理解
- 端杯子的哲学
- XML中PCDATA与CDATA的区别
- FreeMarker 获取页面request、session
- 如何用好NoSQL?Database-as-a-Service
- 一位牛人关于 SIFT算法的讲解
- WorkFlow扩展篇Step.2—集合分组下的活动使用[下]-WF4.0
- WorkFlow扩展篇Step.1—集合分组下的活动使用[上]-WF4.0
- Smarty 模板为 Ajax 请求生成 JSON、XML 和 HTML 响应