我最初發布這個堆疊溢位有人建議我嘗試在這裡發布此內容,因為“這可能是 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 />"
我無法弄清楚的真正奇怪的事情是,當我從命令列運行 Ruby 腳本與從 CGI 運行 Ruby 腳本時,這裡的 PHP 程式碼似乎表現不同。這對我來說確實沒有意義,因為無論哪種方式,我都會使用相同的參數從命令執行相同的 PHP 字串。
當我從命令列運行上述 Ruby 腳本時,我得到了預期的輸出:
內容類型:text/html
開始 PHP 輸出
hello world 結束 PHP 輸出
當我透過 CGI 從瀏覽器點擊相同的 Ruby 腳本時,我得到以下輸出:
開始PHP 輸出
X-Powered-By: PHP/5.2.13 Content-type: text/html
puts "Content-type: text/html\n\n" puts "Start PHP Output
"echo 'hello world' | php5 -q
puts "End PHP Output
" End PHP輸出
在我看來,正在發生的事情是PHP 字串沒有抑制標頭,就像我期望-q 選項所做的那樣......並且還將我的整個Ruby 腳本轉儲回瀏覽器- 這令人困惑我。
有什麼想法嗎?
先致謝!
答案1
我在 StackOverflow 上找到了解決方案。 在這裡查看一下。