Подавить заголовки PHP, запускающие cgi PHP из Ruby

Подавить заголовки PHP, запускающие cgi PHP из Ruby

Первоначально я опубликовал это наПереполнение стекаи мне предложили попробовать разместить это здесь, потому что «может быть что-то вроде того, что конфигурация в CGI отличается от конфигурации для вашего пользователя».

Сказав это, вот мой оригинальный пост:

Признаюсь, для меня это странная проблема, но вот что я делаю:

У меня есть скрипт Ruby, который выполняет строку PHP-кода и фиксирует вывод.

Это в некоторой степени связано сеще одна проблема, которая у меня былас запуском cgi PHP из командной строки.

Вот исходный код скрипта 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 />"

Действительно странная вещь, которую я не могу понять, это то, что PHP-код здесь, похоже, ведет себя по-разному, когда я запускаю скрипт Ruby из командной строки и из CGI. Что на самом деле не имеет для меня смысла, потому что в любом случае я выполняю одну и ту же строку PHP из команды с теми же аргументами.

Когда я запускаю приведенный выше скрипт Ruby из командной строки, я получаю ожидаемый вывод:

Тип содержимого: text/html

Начало PHP-вывода
hello world Конец PHP-вывода

Когда я запускаю тот же скрипт Ruby из браузера через CGI, я получаю следующий вывод:

Запустить PHP-вывод
X-Powered-By: PHP/5.2.13 Content-type: text/html
puts "Content-type: text/html\n\n" puts "Запустить PHP-вывод
" puts echo 'hello world' | php5 -qputs "Завершить PHP-вывод
" Завершить PHP-вывод

Мне кажется, что строка PHP не подавляет заголовки, как я ожидал бы от опции -q... и также сбрасывает весь мой скрипт Ruby обратно в браузер, что меня озадачивает.

Есть предположения?

Заранее спасибо!

решение1

Мне удалось найти решение на StackOverflow. Проверьте это здесь.

Связанный контент