2016-12-01 105 views
0

我想將數據放入PHP輸入流php://input,這樣我可以在撥打file_get_contents("php://input");時將其返回。插入到php輸入流(php://輸入)

我這樣做是爲了建立一個測試來確認我無法改變的代碼的行爲。

如何設置php://input

+0

這一切都在手冊中。 php://輸入是隻讀的。它包含原始請求主體。影響php://輸入內容的唯一方法是創建一個HTTP請求,用於向您呈現給PHP的數據填充請求正文。 http://php.net/manual/en/wrappers.php.php – GordonM

回答

1

只需在調用命令之前調用PHP插入輸入的命令即可。

也許使用管道?相反

這個:

此外,還可以改變現有的代碼,因此它不會從輸入讀取,而是從一個參數是這樣

function current_function(){ 
    $a = file_get_contents("php://input"); 
    # do stuff with $a 
} 

試試這個:

function do_thing_before_current_function($a){ 
    $STDIN = file_get_contents("php://input"); 
    # do stuff to pre-process STDIN 
    current_function($STDIN); 
} 
function current_function($a){ 
    # do stuff with $a 
} 

這有助於使您的設計更具可測性。

另外,如果你不能修改密碼,儘量管道的東西到PHP​​腳本您的bash shell中:

$ echo "input_here" | php your_script_name.php 

,或者,如果在Windows上,這樣做:

C:\> \path\to\php.exe \path\to\your_script_name.php < example_input_content.txt 

希望有所幫助!