php从外部网站接收并使用xml发布的数据

时间:2018-04-25 09:08:01

标签: php xml

我很难接收从其他/外部网站发送到我的网址的xml数据。外部网站假设将一些xml格式数据发送到我的网址,我需要接收它并使用它上面的数据。

我试过了:

$data = simplexml_load_file("https://example.com"); 

$dom = new DOMDocument();
$dom->load('https://example.com');

我在网上发现了这些并尝试过但没有成功。有人对此有所了解,因为我是xml的新手。 还有什么方法可以确认数据是否已经到我的网址了?

外部网站发送如下数据:

<Message date="25/04/2018 13:26:33">
<Version>1.0</Version>
<OrderID>4232434</OrderID>
</Message>

2 个答案:

答案 0 :(得分:-1)

如果数据已发布给您,那么您的PHP文件应该

if(isset($_POST['xml'])){
//do domething
}

答案 1 :(得分:-1)

由于我没有URL,因此我已经硬编码了您在评论中添加的XML内容......

$dataPOST = <<< XML
<Message date="25/04/2018 13:26:33">
    <Version>1.0</Version>
    <OrderID>34523</OrderID>
</Message>
XML;

//$dataPOST = trim(file_get_contents('<url>')); 
$xmlData = simplexml_load_string($dataPOST); 
echo "<pre>".$xmlData->asXML()."</pre>";
echo "Message date:".$xmlData['date'].PHP_EOL;

这输出......

<pre><?xml version="1.0"?>
<Message date="25/04/2018 13:26:33">
    <Version>1.0</Version>
    <OrderID>34523</OrderID>
</Message>
</pre>Message date:25/04/2018 13:26:33

如果您没有这样做,请检查您是否从网站上获得了正确的内容...

echo "<pre>".$dataPOST."</pre>";

更新

我想我现在更了解你需要做什么。我认为您需要阅读XML ...

$dataPOST = trim(file_get_contents("php://input"));