php有没有办法检测出程序运行到此处之前有无输出?
高洛峰
高洛峰 2016-10-24 10:58:23
[PHP讨论组]

注意我并不是想解决header()的问题,只是程序中有一个功能有这个需求。
反之,我倒是想过是不是可以通过发个header来检测,或者set个cookie(一个道理)。但是据说php有个output_buffering机制,搞得这条路又行不通了。因为把这个机制残忍地关闭可能会导致一些其它不可预期的问题,而且不是所有环境都能关闭的。
就算行得通,但cookie总是慢一拍,不能set完马上获取到。发个header又会导致没用的东西掺杂在http头中。

那。。。

有什么办法达到这个需求呢?

(我并不想修改程序其他部分的代码)


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
三叔

php的输出机制并不是使用完了echo 之类的指令就会立即输出的,而是先将这部分内容放到一个缓冲区里区。(所谓缓冲区就是一块共享内存),等内存满了或者脚本结束的时候,php才会将这块内存交付给nginx或者apache来输出。
因此,要想实现你的需求,只需要判断缓冲区里有没有内容即可。
php给我们提供了这样的函数,即
ob_get_contents

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号