Я наткнулся на эту строку в некотором PHP-коде, который я унаследовал:
header('Content-Encoding: ', true);
Просмотр документов MDN для Content-Encoding ‘true’ не является допустимым значением. Он ожидает что-то вроде gzip или deflate, не правда.
Я также посмотрел и не вижу никакого особого поведения в PHP, если вы установите для него значение true.
Однако в коде, который я смотрю на эту строку, есть следующий эффект: он заставляет файл, который выводится, быть заархивирован. Он также добавляет пустой заголовок Content-Encoding к заголовкам ответа http. Последнее я понимаю — первое нет.
Здесь есть некоторое взаимодействие с использованием PHP ob_gzhandler (), который был вызван и уже правильно установил заголовок Content-Encoding правильно на gzip.
Если я закомментирую эту строку, файл не будет заархивирован.
Похоже, что происходит, это:
ob_gzhandler()
устанавливает заголовок Content-Encoding на gzip. Затем следующая строка: header('Content-Encoding: ', true)
— который называется после ob_end_clean()
каким-то образом активирует предыдущую настройку — но без этого предварительная настройка ob_gzhandler не «активируется». Имеет ли это смысл?
В основном — почему кто-то хочет сделать:
header('Content-Encoding: ', true);?
Задача ещё не решена.
Других решений пока нет …