首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >输出缓冲区和die() / exit()函数?

输出缓冲区和die() / exit()函数?
EN

Stack Overflow用户
提问于 2010-12-30 12:16:15
回答 2查看 2K关注 0票数 2

我希望每个人的假期都过得很顺利。

另一个与PHP相关的问题。我在脚本中使用了输出缓冲区,因为我最近了解到这是一个无效的原因(所以我可以稍后在脚本中传递标头)。我现在意识到,我应该将所有输出存储在一个变量或其他类型的存储中,直到我准备好在脚本结束时输出,而不是使用输出缓冲区。不幸的是,我已经将这些函数和html的自发输出编码到我的页面中了。我希望能够在脚本的版本2中解决这个问题,因为我有严格的截止日期来满足这个版本。

对手头的问题。我本来打算这么做的,但是很明显die()和exit()函数在输出缓冲区中不能很好地工作?我在所有错误消息之后都有exit(),而不是在这一点上结束执行,脚本似乎由于输出缓冲区而继续运行。我已经通过删除输出缓冲区和exit()函数测试了这个假设。

有没有办法改变这种行为,或者我应该回到绘图板上,开始替换我的旧页面?另外,谁能给我解释一下为什么我们要把输出保存到最后?我总是对学习感兴趣。

提前感谢大家!尽情享受2010的最后几天吧!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-30 12:31:16

虽然我将把更重要、更抽象的问题留给比我更聪明的头脑,但我建议您创建一个包装器exit()函数,以便在出现错误时简化代码。i.e-

代码语言:javascript
运行
复制
if(!$good)
{
    trigger_error('bleh', E_USER_WARNING);
    errorExit();
}

function errorExit()
{
    ob_flush();
    exit();
}

并将所有退出替换为该函数调用,这样缓冲区将被刷新,程序将在适当的时间退出。

票数 1
EN

Stack Overflow用户

发布于 2014-05-28 23:22:30

页眉和实际页面内容之间的区别基本上只是它们出现的位置。顾名思义,header位于输出的开头。在此之后,将发送两个回车/回车符(enter symbols),之后的所有内容都被假定为内容。因此,如果您回显某些内容,然后想要更改标头,则不能这样做。内容部分已关闭标题部分。您将作为新标题发送的内容现在将显示为纯文本(如果PHP解释器不阻止您,它确实会阻止您)。

至于问题的另一部分,正如帕特里克所说,ob_flush是一个很好的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4559954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档