2016-10-22 15 views
3

からContent-Typeヘッダを削除し、私はIO ::標準出力と呼ばれる関数書かれています:まあはLighttpdの応答

class IO { 
     public static function stdout($var) { 
      $stdout = fopen('php://stdout', 'w'); 
      fwrite($stdout, $var, strlen($var)); 
      fclose($stdout); 
     } 
} 
IO::stdout("Hello World!"); 

を、それが動作します!私はページを要求する場合でも、それは私が表示されます。php.iniでexpose_php = Offを設定

Hello World! 
X-Powered-By: PHP/5.6.13 
Content-type: text/html; charset=UTF-8 

は、X-Poweredの-Byヘッダーを削除しますが、Content-Typeヘッダは、まだ印刷されます。おそらくLighttpdによって追加されます。 Content-Typeヘッダーを無効にするにはどうすればよいですか?

+0

lighttpdは本文の前にヘッダーに "Content-Type"ではない "Content-Type"を追加します。したがって、 "Content-type:text/html; charset = UTF-8"を追加するものはlighttpdではありません。あなたの "Hello World!"の後ろに現れるヘッダーがPHPが送るヘッダのように、あなたのPHPコードがリクエストのデフォルトPHP処理と衝突するようです。 – gstrauss

答えて

1

これはデフォルトのPHPのヘッダである:http://php.net/manual/fr/ini.core.php#ini.default-mimetype

行方不明Content-Typeヘッダは、デフォルトのMIMEタイプをトリガーするようあなたは、header_removeを使用して、それを削除することはできません。

代わりに、空の文字列に設定してみてください:

header('Content-Type:', true);

trueは、以前と同様のヘッダを消去されます。

ヘッダーの名前は大文字と小文字を区別しません。PHPはtの小さいContent-typeを送信することが知られています。

また、Content-Type(これはtext/plainと思われる)を送信することもできます。