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