2017-03-13 1 views
1

Meine Anwendung wird von php-fpm bedient, so dass PHP das erkennt und versucht, die Antwort zu formatieren, um eine gültige HTTP-Antwort zu erhalten. Ich möchte ändern, dass:PHP: Wie mit einem benutzerdefinierten Protokoll anders als HTTP reagieren?

<?php 
ini_set('html_errors', 0); 
$x = "<body></body>"; 
header_remove('Content-type'); 
echo $x; 

Der Stromausgang (Nicht das, was ich will):

CRLF (empty line) 
<body></body> 

Ich möchte eine volle Kontrolle über PHP-Antwort haben und leere Zeile am Anfang entfernen:

<body></body> 

Wie kann ich es tun? Wie kann ich die Ausgabe in FastCGI-Umgebung vollständig steuern?

+1

PHP fügt keine Körper- oder andere HTML-Elemente hinzu, noch fügt es neue Zeilen hinzu. Wenn Sie diese Ausgabe erhalten, wird sie von etwas in unserem PHP-Skript ausgegeben. Überprüfen Sie am Anfang und am Ende Ihrer Skripte auf Leerzeichen. – Gordon

+0

@Gordon Eigentlich fügt PHP eine neue Zeile zwischen HTTP-Header und Body-Response hinzu, um dem RFC-Standard in fastcgi-Umgebung zu entsprechen. Sie können den Code selbst ausprobieren oder lesen Sie das Handbuch http://php.net/manual/en/ini.core.php#ini.cgi.rfc2616-headers – Abdullah

+0

Ok, um zu verdeutlichen: Sie wollen keine entfernen Zeilenumbrüche aus dem Antworttext, aber der eigentliche Newline-Header und Antworttext, z die Newline, die von den CGI- und HTTP-Spezifikationen benötigt wird. Nach Ihrem Code möchten Sie auch den Content-Type entfernen, der in einer CGI-Antwort obligatorisch ist. – Gordon

Antwort

Verwandte Themen