Удалите заголовок в PHP

Позволить кэшировать PHP генерировало файл, я хочу удостовериться, что 'Прагма:' заголовок без кэшей не установлен. Однако, как я возможно уже удаляю заголовок набора?

Таким образом, это могло быть возможно, который где-нибудь в коде кто-то записал header('Pragma: no-cache'); и теперь я хочу удостовериться, заголовок не отправляется.

Это достаточный, чтобы сделать это:

header('Pragma:');

или есть ли что-то как delete_header() (который, по-видимому, был бы не документирован или хорошо скрыт)?

9
задан Brian Tompsett - 汤莱恩 6 July 2015 в 18:39
поделиться

3 ответа

header_remove () , так как php 5.3

header_register_callback () также скоро появится

14
ответ дан 4 December 2019 в 10:31
поделиться

Вы можете переопределить ранее установленный заголовок, передав второй аргумент в header () :

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

См. Руководство для header ()

2
ответ дан 4 December 2019 в 10:31
поделиться

Поведение заголовков 'pragma' не определено в спецификации - несмотря на широко распространенное мнение, что отправка заголовка 'Pragma: No-cache" заголовок будет иметь некоторое влияние на браузер, на самом деле он почти повсеместно игнорируется (и никогда не возвращается ни одной установкой php, которую я использовал).

Чтобы указать браузеру НЕ кэшировать содержимое, используется заголовок expires с датой в прошлом, заголовок Cache-Control со значением no-cache или (если вы хотите быть хитрее) заголовок 'Varies: Date". При отсутствии любого из этих типов заголовков клиент не должен кэшировать страницу.

Поэтому, наоборот, если вы хотите, чтобы страница была кэшируемой, установите заголовки expires и cache-cntrol.

C.

1
ответ дан 4 December 2019 в 10:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: