我们目前正在使用Ultracart将xml回发到我们服务器上的网址。我正在尝试做的是接收xml,然后右转并将其发布到另一个页面。 (对于我们正在进行的项目,我们无法将回发发送到多个来源。)以下是我一直在玩的内容:
$xml = file_get_contents('php://input');
$url = 'https://destinationlink';
$post_data = array(
"xml" => $xml,
);
$stream_options = array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'content' => http_build_query($post_data),
),
);
$context = stream_context_create($stream_options);
$response = file_get_contents($url, null, $context);
我知道我在这里缺少一些重要的东西......我想我已经看了太久了,我看不出问题......可能是一件非常简单的事情。
答案 0 :(得分:0)
事实证明,CURL就是答案。
//URL where to send the data via POST
$URL1 = 'http://destinationlink';
//the actual data
$xml_data1 = file_get_contents('php://input');
$ch1 = curl_init($URL1);
curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch1, CURLOPT_POST, 1);
curl_setopt($ch1, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch1, CURLOPT_POSTFIELDS, "$xml_data1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
$output1 = curl_exec($ch1);
curl_close($ch1);
这就像一个魅力。
我可以收到XML回发(php://输入),根据目标URL使用此curl代码创建不同的块,并将信息逐个发送到我需要的所有单独连接。