3
我正在研究一個簡單的python web服務器用於教育目的。我希望我的服務器能夠根據請求運行PHP腳本。我能夠通過創建一個像這個answer這樣的子進程來執行php代碼,並以字節形式獲取它的輸出。這可以幫助我執行大部分PHP內置函數。但我也想模擬$ _GET和$ _POST變量,例如,當用戶發送POST請求時,我希望它的參數在$ _POST全局變量中可用。我聽說在一個像Apache這樣的真正的Web服務器中,PHP從環境變量(通用網關接口標準,我認爲)中獲得這些變量的值。
但是,當我設置一個名爲QUERY_STRING
的環境變量時,php沒有設置$ _GET的值。讓我告訴大圖片:
的index.php
<?php var_dump($_GET); ?>
我在shell命令:
export QUERY_STRING="foo=bar"
php index.php
此命令剪斷不給我我想要的輸出(數組=> [ 'foo'] ='酒吧')。這裏是我的問題:
- 在上面的代碼中,我的錯誤是什麼?
- 如何將這兩個全局變量($ _GET和$ _POST)注入python中的PHP腳本?
我的Python版本是3.4.3,我使用Ubuntu 14.04
末更多例子參見本【答案】(http://stackoverflow.com/questions/4186392/php-passing-get-in-linux-command-prompt) – frz3993
你或者在命令行中編寫一個針對執行的PHP腳本,或者針對在Web服務器上運行的目標。不要做一個奇怪的混合物。如果它是CLI腳本,則通過參數或標準輸入傳遞參數,而不是模擬的Web請求。 – deceze