По общему признанию, это странная проблема для меня, но вот что я делаю:
У меня есть скрипт на 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 из командной строки, я получаю ожидаемый вывод:
Тип содержимого: текст / html
Начало вывода PHP
Привет, конец мира
Вывод PHP
Когда я запускаю тот же самый скрипт Ruby из браузера через CGI, я получаю такой вывод:
Запуск вывода PHP
X-Powered-By:
PHP / 5.2.13 Тип содержимого: текст / html
ставит "Тип контента: текст / html \ n \ n"
ставит «Начать вывод PHP
»
echo 'hello world' | php5 -q
пут
"End PHP Output
" End PHP
Выход
Мне кажется, что то, что происходит, состоит в том, что строка PHP не подавляет заголовки, как я ожидаю, что опция -q сделает ..., а также выводит весь мой скрипт Ruby обратно в браузер. - что сбивает меня с толку.
Есть мысли?
Заранее спасибо!