2017-03-07 91 views
0

我使用節點JS和curl發送一些json數據。我特意使用這個語法來增加最大緩衝區大小,但我不知道如何在PHP中接收我的數據。如何從節點JS讀取POST數據到PHP

的NodeJS

var a = (JSON.stringify({key1: "val1", key2 : "val2"})); 
var exec = require('child_process').exec; 

var execute = function(command, callback) { 
    exec(command, {maxBuffer: 1024 * 1000}, function(error, stdout, stderr) {callback(error, stdout);}); 
}; 

execute("curl -X POST -H 'Content-Type: application/json' -d '" + a +"' 'https://www.e-cotiz.com/api-payment-test/export/test.php'", function(error, stdout, stderr) { 
    // if(err) throw err; 
    console.log('stdout: ' + stdout); 
    console.log('stderr: ' + stderr); 
    if (error !== null) { 
    console.log('exec error: ' + error); 
    } 
}); 

PHP

<?php 
    $headers = apache_request_headers(); 

    $jsonStr = file_get_contents("php://input"); 
    $data = json_decode($jsonStr,true); 

    print_r($data); 
?> 

我有兩個問題:

  • 是我的JS代碼,併發送正確的JSON的語法?
  • 如何修改我的PHP代碼以接收我的數據?
+0

print_r($ _ REQUEST) – Dherya

回答

0

不能完全確定它的節點是如何工作的,但假設你a變量是一個對象,它看起來像這樣...

var a = { 
    key1: 'val1', 
    key2: 'val2' 
}; 

然後PHP將訪問像這樣的信息...

$value1 = $_POST['a']['key1']; 
$value2 = $_POST['a']['key2'];