PHP如何解析XML代码?
是一个短信接口:调用的代码如下:
$res = file_get_contents("http://XXXXXXX/webservice.asmx/mt?Sn=$name&Pwd=$pwd&mobile=$tel&content=$msg");
print_r($res);
print_r($res)后获得一段XML代码,如下:
<?xml version="1.0" encoding="utf-8" ?>
<int xmlns="http://tempuri.org/">
0</int>
看到这段代码中的0了么?我标了红色。如果返回值是0,则发送成功。
但是我这样判断是不可以的:
if($res=="0"){
mysql_query("update sms set etime=now(),wei='发送成功' where sms_id='$sms_id'");
}
请问我应该怎样判断获取到了0并在数据库中更新发送状态?
------解决方案--------------------preg_match('/<int xmlns="http\:\/\/tempuri\.org\/">(.+)<\/int>/s', $res,$r);
if($r[1]=="0"){
mysql_query("update sms set etime=now(),wei='发送成功' where sms_id='$sms_id'");
}
------解决方案--------------------返回xml是个字符串(而且非常短),你要判断的也是个字符串,所以没必要先解析xml
当然你去解析也不是错误,只是多耗点资源而已,先加载一个dom class,再parse
如果你要获得一个xml节点(复杂点的),再考虑后一种方法吧
#3的正则是一样的,但从返回的字串判断
你这情况就执行与不执行的布林值,所以我觉得连返回都可以省了
直接判断preg_match()是否True就够了