允许从函数内部设置哪种标头? 如果我从函数内部为图像设置MIME类型,这是可以的吗?
示例:
function createImage($parameters) {
/**
* Here process parameters
*/
// Set header
header ('Content-Type: image/png');
// create the image an destroy it
}
如果从函数内部设置标题,是否有任何优点或缺点?什么是最佳实践?
非常感谢你。
答案 0 :(得分:4)
除了通常的“已发送标头”之外没有任何技术限制,除非大多数人不希望修改响应标头的功能,除非它是专门设计和记录的。
最佳做法是不要在函数中执行此操作,除非明确标题被修改,并且它不仅仅是偶然发生的副作用。
答案 1 :(得分:1)
只要您不向浏览器发送任何数据,您就可以随意添加任何标题。虽然浏览器包含X-What: Ever
等自定义标题不会有所作为。
为避免以前意外输出数据时出现错误,请使用以下内容:
if (!headers_sent()) {
header('Content-Type: image/png');
}
使用此方法的优点是,每次创建要发送到浏览器的图像时,都不必重复header(..)
。
但是,从下面的评论判断(“创建图像并将其破坏”),听起来并不像是要向浏览器显示图像(显示为“发送原始图像”,而不是“显示一个带有图像的HTML页面”)。在这种情况下,请不要发送header
,因为它可能会混淆浏览器。
答案 2 :(得分:0)
允许在函数内设置哪种标题?
任何
发送内容后无法设置标题,但是如果使用某个功能则无关紧要。
如果从函数内部设置标题,是否有任何优点或缺点?
与使用其他任何功能相同。