#php #lighttpd
#php #lighttpd
Вопрос:
Я написал функцию с именем IO::stdout:
class IO {
public static function stdout($var) {
$stdout = fopen('php://stdout', 'w');
fwrite($stdout, $var, strlen($var));
fclose($stdout);
}
}
IO::stdout("Hello World!");
Что ж, это работает! Но когда я запрашиваю страницу, она отображает меня:
Hello World!
X-Powered-By: PHP/5.6.13
Content-type: text/html; charset=UTF-8
Настройка expose_php = Off
в php.ini удалила заголовок X-Powered-By, но заголовок типа содержимого по-прежнему печатается. Вероятно, он добавлен Lighttpd. Как мне отключить заголовок типа содержимого?
Комментарии:
1. lighttpd добавляет «Content-Type», а не «Content-type» к заголовкам (перед основным содержимым — и поэтому все, что добавляет «Content-type: text / html; charset = UTF-8», не является lighttpd. Похоже, что ваш PHP-код конфликтует с обработкой запроса PHP по умолчанию, поскольку заголовки, появляющиеся после вашего «Hello World!» выглядят как заголовки, которые отправил бы PHP.
Ответ №1:
Это заголовок PHP по умолчанию: http://php.net/manual/fr/ini.core.php#ini.default-mimetype
Вы не можете удалить его с помощью header_remove
, так как отсутствующий Content-Type
заголовок вызовет mime-тип по умолчанию.
Вместо этого попробуйте установить для него пустую строку:
header('Content-Type:', true);
true
удалит любой предыдущий аналогичный заголовок.
И просто для справки, имена заголовков не чувствительны к регистру, а PHP, как известно, отправляет заголовок Content-type
с небольшим t
.
Также вы можете отправить правильный Content-Type
(который должен быть text/plain
, я думаю).