Удалить заголовок в PHP
чтобы разрешить кэширование сгенерированного PHP-файла, я хочу убедиться, что заголовок "Pragma: no-cache"не set. Однако, как удалить возможно уже установленный заголовок?
то есть мог бы возможно, что где-то в коде кто-то писал header('Pragma: no-cache');
и теперь я хочу убедиться, заголовок не отправляется.
достаточно ли этого:
header('Pragma:');
или есть что-то вроде delete_header()
(что, по-видимому, будет недокументированные или скрытые)?
4 ответов
Я знаю, этот вопрос старый и уже ответил. Но некоторые ответы могут оставить у людей неправильное впечатление. Будьте уверены, что если ваши заголовки ответов содержат Pragma: no-cache
Это абсолютно не позволит веб-браузеру кэшировать ресурс независимо от других настроек.
поэтому, конечно, если вы используете хотя бы PHP 5.3, вы можете удалить Pragma
заголовок с помощью header_remove( 'Pragma' );
.
вы можете переопределить ранее установленный заголовок, передав второй аргумент header()
:
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
Регистрация руководство header()
поведение заголовков "pragma" не определяется спецификацией - несмотря на широко распространенное мнение, что отправка заголовка "Pragma: No-cache" окажет некоторое влияние на браузер, на самом деле он почти повсеместно игнорируется (и никогда не возвращается любой установкой php, которую я использовал).
чтобы сказать браузеру, чтобы не кэшировать контент, выполняется через заголовок expires с датой в прошлом, заголовок управления кэшем со значением no-cache или (если вы хотите быть скрытым) с помощью "Varies: Date" заголовок. При отсутствии любого из этих типов заголовков клиент не должен кэшировать страницы.
и наоборот, если вы хотите, чтобы страница была кэшируемой, установите заголовки expires и cache-cntrol.
С.