Originalmente publiqué esto enDesbordamiento de pilay me sugirieron que intentara publicar esto aquí porque "podría ser que la configuración en CGI sea diferente a la configuración de su usuario".
Dicho esto, aquí está mi publicación original:
Es cierto que es un problema extraño para mí, pero esto es lo que estoy haciendo:
Tengo un script Ruby que ejecuta una cadena de código PHP y captura el resultado.
Esto está algo relacionado conotro problema que tuvecon la ejecución de cgi PHP desde la línea de comando.
Aquí está la fuente del 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 />"
Lo realmente extraño que no puedo entender es que el código PHP aquí parece comportarse de manera diferente cuando ejecuto el script Ruby desde la línea de comandos versus desde CGI. Lo cual realmente no tiene sentido para mí, porque de cualquier manera estoy ejecutando la misma cadena de PHP desde el comando con los mismos argumentos.
Cuando ejecuto el script Ruby anterior desde la línea de comando, obtengo el resultado que espero:
Tipo de contenido: texto/html
Iniciar salida PHP
hola mundo Finalizar salida PHP
Cuando presiono ese mismo script Ruby desde un navegador a través de CGI, obtengo este resultado:
Iniciar salida PHP
X-Powered-By: PHP/5.2.13 Tipo de contenido: text/html
puts "Tipo de contenido: text/html\n\n" puts "Iniciar salida PHP
" putsecho 'hello world' | php5 -q
puts "Finalizar salida PHP
" Finalizar PHP Producción
A mí me parece que lo que está sucediendo es que la cadena de PHP no está suprimiendo los encabezados, como esperaría que hiciera la opción -q... y también está volcando todo mi script Ruby al navegador, lo cual desconcierta. a mí.
¿Alguna idea?
¡Gracias de antemano!
Respuesta1
Pude obtener una solución en StackOverflow. Compruébalo aquí.