Certes, cela est un problème étrange pour moi d'avoir, mais voici ce que je fais:Suppress PHP cgi des en-têtes de PHP Ruby
J'ai un script Ruby qui exécute une chaîne de PHP code et capturant la sortie.
Ceci est en quelque sorte lié à another problem that I had avec l'exécution de cgi PHP à partir de la ligne de commande.
Voici la source d'un script Ruby:
#!/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 />"
La chose vraiment étrange que je ne peux pas comprendre que le code PHP semble ici pour se comporter différemment quand je lance le script Ruby à partir de la ligne de commande vs de CGI. Ce qui n'a vraiment aucun sens pour moi, parce que de toute façon j'exécute la même chaîne de PHP à partir de la commande avec les mêmes arguments.
Quand je lance le dessus de script Ruby à partir de la ligne de commande, je reçois la sortie que je pense:
Content-Type: text/html
PHP Début sortie
Bonjour tout le monde fin PHP sortie
Quand je frappe ce même script Ruby à partir d'un navigateur via CGI, je reçois cette sortie:
Démarrer PHP Sortie
Powered-By-X: PHP/5.2.13 Content-Type: text/html
puts "Content-Type: text/html \ n \ n" puts « PHP Démarrer sortie
"metecho 'hello world' | php5 -q
met « pour moi, comme ce qui se passe est que la chaîne de PHP n'est pas supprimer les en-têtes, Fin PHP sortie
» Fin PHP sortie
Il semble, comme je me attends -q option à faire ... et jette aussi mon intégralité Le script Ruby revient au navigateur - ce qui me déroute.
Des pensées?
Merci d'avance!
Cela pourrait être mieux adapté à ServerFault. Il se peut que la configuration de CGI soit différente de la configuration de votre utilisateur. –
Merci, je l'ai posté à ServerFault: http://serverfault.com/questions/148205/suppress-php-headers-running-cgi-php-from-ruby –