2017-03-13 2 views
1

Mon application est servie par php-fpm donc PHP la détectera et tentera de formater la réponse pour en faire une réponse HTTP valide. Je veux changer cela:PHP: Comment répondre avec un protocole personnalisé autre que HTTP?

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

La sortie courant (pas ce que je veux):

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

Je veux avoir un contrôle total sur la réponse de php et de supprimer la ligne vide au début:

<body></body> 

Comment puis-je le faire? Comment puis-je avoir un contrôle complet sur la sortie dans l'environnement FastCGI.

+1

PHP n'ajoute pas d'éléments HTML ou d'autres éléments HTML et n'ajoute pas de nouvelles lignes. Si vous obtenez cette sortie, elle est sortie par quelque chose dans notre script PHP. Vérifiez les espaces au début et à la fin de vos scripts. – Gordon

+0

@Gordon En fait PHP ajoute une nouvelle ligne entre l'en-tête http et la réponse du corps pour correspondre à la norme RFC dans l'environnement fastcgi. vous pouvez essayer le code seul ou lire le manuel http://php.net/manual/fr/ini.core.php#ini.cgi.rfc2616-headers – Abdullah

+0

Ok, pour clarifier: vous ne voulez pas supprimer newlines du corps de la réponse, mais l'en-tête de séparation de nouvelle ligne et le corps de la réponse, par ex. la nouvelle ligne requise par les spécifications CGI et HTTP. En outre, à en juger par votre code, vous souhaitez également supprimer le type de contenu obligatoire dans une réponse CGI. – Gordon

Répondre