首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在函数/类方法中设置PHP头

问在函数/类方法中设置PHP头
EN

Stack Overflow用户
提问于 2011-10-18 14:01:48
回答 2查看 2.7K关注 0票数 1

我已经编写了一个类,它将内容类型信息作为标题输出,但是这不起作用。在阅读PHP.net之后,它声明

记住,在发送任何实际输出之前,必须调用header(),无论是通过普通的HTML标记、文件中的空行还是从PHP发送。使用include()或需要量()、函数或另一个文件访问函数读取代码,并且在调用header()之前有空格或空行,这是非常常见的错误。

我不知道该怎么做,因为我不能硬编码任何地方需要的内容类型。有人知道是否可以在函数/类中设置标头吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-18 12:52:56

头始终正确地发送,但我正在检查我正在使用的文件的响应,如果这有意义的话,不能正确地从CURL获得响应!我只需要用:

代码语言:javascript
复制
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
票数 0
EN

Stack Overflow用户

发布于 2011-10-18 14:03:43

限制是必须在发送任何其他输出之前发送标头。

最简单的解决方案是启用输出缓冲。因此,您可以在任何地方设置标头,直到缓冲区被刷新。

您可以使用函数ob_start来完成此操作。

或者在output_buffering文件中使用php.ini ini指令。

正如布拉德所指出的,它不是最有效的解决方案,因为它占用服务器内存来缓冲输出并延迟第一个字节的发送。

最好的解决方案是找到在header调用之前发送输出的内容,并在可能的情况下延迟输出。

我发现的一个很好的折衷方法是在开始时使用ob_start启用输出缓冲,并在生成页面<head>元素和设置所有所需的头之后刷新缓冲区。这样,任何进一步的输出都不会被缓冲。唯一需要注意的是,所有头调用都是在ob_end_flush调用之前进行的。

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

https://stackoverflow.com/questions/7808469

复制
相关文章

相似问题

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