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

Чтобы разрешить кэширование PHP-файла, я хочу убедиться, что заголовок «Pragma: no-cache» не установлен. Однако как удалить уже установленный заголовок?

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

Достаточно ли этого сделать:

 header('Pragma:'); 

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

Related of "Удалить заголовок в PHP"

header_remove (), поскольку php 5.3

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

Я знаю, что этот вопрос старый и уже ответил. Но некоторые ответы могут оставить людей с неправильным впечатлением. Будьте уверены, что если ваши заголовки ответов содержат Pragma: no-cache это фактически не позволит веб-браузеру кэшировать ресурс независимо от других настроек.

Поэтому, конечно, если вы используете хотя бы PHP 5.3, вы можете удалить заголовок Pragma используя header_remove( 'Pragma' ); ,

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

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

Проверьте руководство для header()

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

Чтобы сообщить браузеру, что кеш-контент не кэшируется, выполняется через заголовок expires с датой в прошлом, заголовок Cache-Control со значением без кэша или (если вы хотите быть подлым) заголовком «Varies: Date» , В отсутствие любого из этих типов заголовков клиент не должен кэшировать страницу.

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

C.