要允许缓存PHP生成的文件,我想确保'Pragma:no-cache'标题为而不是集合。但是,如何删除可能已经设置的标题?在PHP中删除标题
也就是说,它可能是可能的,在某些地方的代码有人写header('Pragma: no-cache');
现在我想确保,头不发送。
是否足以做到这一点:
header('Pragma:');
或者是有什么样delete_header()
(这很显然,是无证或隐藏良好)?
要允许缓存PHP生成的文件,我想确保'Pragma:no-cache'标题为而不是集合。但是,如何删除可能已经设置的标题?在PHP中删除标题
也就是说,它可能是可能的,在某些地方的代码有人写header('Pragma: no-cache');
现在我想确保,头不发送。
是否足以做到这一点:
header('Pragma:');
或者是有什么样delete_header()
(这很显然,是无证或隐藏良好)?
header_remove()由于PHP 5.3
你可以通过传递第二个参数给header()
覆盖先前设置的标题:
void header (string $string [, bool $replace = true [, int $http_response_code ]])
'杂注'标题行为不是由规范定义的 - 尽管wi我们相信,发送一个'Pragma:No-cache'头文件会对浏览器产生一些影响,实际上它几乎被普遍忽略(并且永远不会被我用过的任何PHP安装程序返回)。
要告诉浏览器不要缓存内容,可以通过过期的日期头,带有无缓存值的缓存控制头,或者(如果你想偷偷摸摸) :日期'标题。在没有任何这些类型的头部的情况下,客户端不得高速缓存该页面。
因此,相反,如果您希望页面可缓存,请设置expires和cache-cntrol标头。
C.
我知道这个问题已经老了,已经回答了。但是其中一些答案可能会给人留下错误的印象。请放心,如果您的响应标题包含Pragma: no-cache
,那么绝对会阻止Web浏览器缓存资源,而不管其他设置如何。
所以当然,如果您至少使用PHP 5.3,您可以使用header_remove('Pragma');
删除Pragma
标题。
既然PHP是开源软件,那么在那里有一些“没有文档,很好隐藏”的东西是无稽之谈。 – selfawaresoup 2010-04-03 18:04:14
@Techpriester:我知道几十个完全没有记录的操作系统项目,隐藏起来也可能是无意的。 – Boldewyn 2010-04-03 21:11:01