XML>仅在源代码中使用PHP

我有一个小问题,我用我的服务的一部分API使用rsp stat来处理XML中的成功/错误消息。

所以我们使用表单来发布数据,并返回如下例所示的数据:

<rsp stat="ok"> 
    <success msg="accepted" transactionid="505eeb9c43969d4919c0a6b3f7a4dfbb" messageid="a92eff8d65cf48e9c6e96702a7b07400"/> 
</rsp>

以下是使用的大部分脚本:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
     // ToDo: Replace the placeholders in brackets with your data.
     // For example - curl_setopt($ch, CURLOPT_UsERPWD, 'SMSUser:PassW0rD#');
curl_setopt($ch, CURLOPT_USERPWD, '');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
$xml = curl_exec($ch);
if (curl_error($ch)) {
print "ERROR ". curl_error($ch) ."n
"; } curl_close($ch); print_r($xml);

唯一的问题是,当它通过print_r命令解析和显示时,它只会通过源代码显示一些奇怪的原因,我们不知道如何通过页面显示它

基本上我们想要一个系统,如果rsp stat =“ok”,那么“发送”或者“未发送”。


那么,一个简单的方法可能是:

if (strpos($xml, 'stat="ok"') !== false) {
    echo "sent";
} else {
    echo "unsent";
}

http://codepad.org/pkzsfsMk

这将取代print($xml);


将该代码放入一个函数中,并让该函数返回$ xml。

假设你有一个名为getRspStat()的函数,你可以这样做:

      echo getRspStat();

如果你做这样的事情:

(另请参阅CodePad.org)

function xmlRequestWasSuccessful($xml) {
    $result = simplexml_load_string($xml);
    $result = (string)$result['stat'];
    if ($result == 'ok') {
        return true;
    } else {
        return false;
    }
}

$xml = '<rsp stat="ok">
<success msg="accepted" transactionid="505eeb9c43969d4919c0a6b3f7a4dfbb" messageid="a92eff8d65cf48e9c6e96702a7b07400"/>
</rsp>';

$stat = xmlRequestWasSuccessful($xml);

你会在结果( $stat变量)中收到'true'布尔值。 当出现错误时,适应它以支持案例。 由于没有发生错误时的外观细节,因此现在可以这样做:

if ($stat) {
    // do something on success ('sent' something)
} else {
    // do something on success (display 'unsent' message for example)
}
链接地址: http://www.djcxy.com/p/35841.html

上一篇: XML > PHP only in source code

下一篇: extract url from xml response and redirect