使用file_get_contents('php://input')
将xml数据从一台服务器发送到另一台服务器返回空。我发送测试xml以确保远程文件将处理传入的xml流。
$xmlcontent = "<?xml version=\"1.0\"?>\n<english>\n<amount>\n4500.22 dollars\n</amount>\n</english>";
$url = "https://www.example.info/xmlprocessor";
$opts = array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: text/xml",
'content' => $xmlcontent
));
$context = stream_context_create($opts);
$response = file_get_contents($url,false,$context);
//$fp = fopen($url,'r',false,$context);
//fpassthru($fp);
//fclose($fp);
远程网站(https://www.example.info/xmlprocessor)
$response = simplexml_load_string(file_get_contents('php://input'));
//$response = simplexml_load_string(fopen('php://stdin','r'));
//$response = file_get_contents('php://input');
//$response = $_POST;
$processed = json_encode($response);
$results = $db->exec("INSERT INTO example (date,data) VALUES('$time','$processed')");
我已经尝试了所有被注释掉的内容以及不同的标题字符串,并在$ opts中使用'xml' => xmlcontent
。另外,我尝试使用curl,它甚至没有运行远程脚本。