2016-10-22 27 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!"); 

好,它的工作原理!但是,當我請求的頁面,它顯示我:

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

設置在php.ini expose_php = Off取出X供電-By頭,但Content-Type頭還在印刷。它可能是由Lighttpd添加的。如何禁用Content-Type標頭?

+0

lighttpd將「Content-Type」而不是「Content-type」添加到標題(正文內容之前 - 所以不管是添加「Content-type:text/html; charset = UTF-8」)都不是lighttpd。看起來您的PHP代碼與請求的缺省PHP處理衝突,因爲出現在「Hello World!」後面的標題看起來像PHP將發送的標頭。 – gstrauss

回答

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)。