2016-10-22 5 views
3

ich eine Funktion geschrieben haben IO :: stdout genannt:entfernen Content-Type-Header von Lighttpd Antwort

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

Nun, es funktioniert! Aber wenn ich die Seite anfordern, zeigt es mir:

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

Einstellung expose_php = Off in php.ini entfernt, um die X-Powered-By-Header, aber der Content-Type-Header wird immer noch gedruckt. Es wird wahrscheinlich von Lighttpd hinzugefügt. Wie deaktiviere ich den Content-Type-Header?

+0

lighttpd fügt den Kopfzeilen "Content-Type" und nicht "Content-type" hinzu (vor dem Body-Inhalt - und was auch immer hinzugefügt wird "Content-type: text/html; charset = UTF-8" ist nicht lighttpd scheint, dass Ihr PHP-Code mit der Standard-PHP-Behandlung der Anfrage kollidiert, da die nach Ihrem "Hallo Welt!" erscheinenden Header wie Header aussehen, die PHP senden würde. – gstrauss

Antwort

1

Dies ist der Standard PHP-Header: http://php.net/manual/fr/ini.core.php#ini.default-mimetype

Sie nicht header_remove, als fehlende Content-Type Headers entfernen kann, wird die Standard-MIME-Typ auslösen.

Stattdessen versuchen, es auf eine leere Zeichenfolge zu setzen:

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

true jeweils frühere ähnliche Header löschen.

Und nur für den Datensatz, Header-Namen sind Groß-und Kleinschreibung, und PHP ist bekannt, dass die Content-type mit einem kleinen senden t.

Auch Sie können das Recht senden Content-Type (die text/plain sein sollte denke ich).