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?
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
@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
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