簡體   English   中英

從URL讀取XML POST數據

[英]Reading XML POST data from URL

我正在與第三方SMS供應商合作,他們通過URL向我發送SMS的交付報告,如下所示:

http://www.mydomain.com/dlr.php <DeliveryReport><message id="024042313063119191" sentdate="2014/04/23 15:06:31" donedate="2014/04/23 15:06:35" status="DELIVERED" gsmerror="0" price="7.0" /></DeliveryReport>

我正在嘗試讀取dlr.php中的XML數據,如下所示:

<?php

// read raw POST data

$postData = file_get_contents("php://input");

 $dom = new DOMDocument();

 $dom->loadXML($postData);

 // create new XPath object for quering XML elements (nodes)

$xPath = new domxpath($dom);

// query “message” element

 $reports = $xPath->query("/DeliveryReport/message");

 // write out attributes of each “message” element

foreach ($reports as $node) {

  echo “<br>id: “ . $node->getAttribute('id');

  echo “<br>sent: “ . $node->getAttribute('sentdate');

  echo “<br>done: “ . $node->getAttribute('donedate');

  echo “<br>status: “ . $node->getAttribute('status');

  echo “<br>gsmerrorcode: “ . $node->getAttribute('gsmerrorcode');

}

?>

我收到此錯誤:

Warning: DOMDocument::loadXML(): Empty string supplied as input in dlr.php

任何幫助如何正確讀取發布的數據。

謝謝,

您可以簡單地使用此功能從XML獲取數據

function getFeed($feed_url) 
{

        $content = file_get_contents($feed_url);
        $x = new SimpleXmlElement($content);
        foreach($x->channel->item as $entry) : ?>
        <?php
        $pdate = $entry->pubDate;
            $pdate = rtrim($pdate,' -500');
            $pdate = explode(', ',$pdate);
        ?>
        <div >
              <a href="<?php echo $entry->link; ?>" target="_blank">
            <span > <?php echo $entry->title;?></span></a> <?php echo $pdate[1]; ?>
        </div>
        <?php 
        endforeach; 
    }

    getFeed("// Your URL");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM