Unterdrückt PHP-Header, die CGI-PHP aus Ruby ausführen

Unterdrückt PHP-Header, die CGI-PHP aus Ruby ausführen

Ich habe dies ursprünglich gepostet aufPaketüberflussund mir wurde vorgeschlagen, dies hier zu posten, weil: „Es könnte sein, dass die Konfiguration in CGI sich von der Konfiguration für Ihren Benutzer unterscheidet.“

Nachdem das gesagt ist, hier mein ursprünglicher Beitrag:

Zugegeben, das ist für mich ein seltsames Problem, aber ich mache Folgendes:

Ich habe ein Ruby-Skript, das eine Zeichenfolge aus PHP-Code ausführt und die Ausgabe erfasst.

Dies hängt in gewisser Weise mitein weiteres Problem, das ich hattemit dem Ausführen von CGI-PHP von der Befehlszeile aus.

Hier ist der Quelltext des Ruby-Skripts:

#!/usr/bin/ruby
puts "Content-type: text/html\n\n"
puts "Start PHP Output<br />"
puts `echo '<?php echo "hello world"; ?>' | php5 -q`
puts "End PHP Output<br />"

Das wirklich Merkwürdige, das ich nicht herausfinden kann, ist, dass sich der PHP-Code hier anders zu verhalten scheint, wenn ich das Ruby-Skript von der Befehlszeile aus ausführe, im Vergleich zu CGI. Das ergibt für mich wirklich keinen Sinn, da ich in beiden Fällen dieselbe PHP-Zeichenfolge vom Befehl mit denselben Argumenten ausführe.

Wenn ich das obige Ruby-Skript von der Befehlszeile aus ausführe, erhalte ich die erwartete Ausgabe:

Inhaltstyp: text/html

Start PHP-Ausgabe
Hallo Welt Ende PHP-Ausgabe

Wenn ich dasselbe Ruby-Skript von einem Browser aus über CGI aufrufe, erhalte ich diese Ausgabe:

PHP-Ausgabe starten
X-Powered-By: PHP/5.2.13 Inhaltstyp: text/html
setzt "Inhaltstyp: text/html\n\n" setzt "PHP-Ausgabe starten
" echo 'hello world' | php5 -qsetzt "PHP-Ausgabe beenden
" PHP-Ausgabe beenden

Für mich sieht es so aus, als ob die PHP-Zeichenfolge die Header nicht unterdrückt, wie ich es von der Option -q erwarten würde ... und außerdem mein gesamtes Ruby-Skript an den Browser zurückgibt – was mich verblüfft.

Irgendwelche Gedanken?

Dank im Voraus!

Antwort1

Ich konnte auf StackOverflow eine Lösung finden. Schauen Sie es sich hier an.

verwandte Informationen