我需要检查网站输出的返回值。如果有效登录详细信息,则返回XML文件,如果登录详细信息无效,则只返回一个字符串,表示“您输入的ID无效”。
我的问题是我使用此代码进行检查,
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
if(simplexml_load_string($output)){
echo 'Is XML';
}else{
echo 'Not XML';
}
问题是检查并显示消息,但我收到了这些错误
警告:simplexml_load_string()[function.simplexml-load-string]: 实体:第1行:解析器错误:期望开始标记,'<'
中找不到警告:simplexml_load_string()[function.simplexml-load-string]:
警告:simplexml_load_string()[function.simplexml-load-string]:^ 在
有没有办法解决这些错误。我一直在网上搜索过去的一小时没有任何成功。
谢谢
答案 0 :(得分:13)
检查前5个字符是否等于<?xml
,这应该是一个非常好的线索。
if(substr($output, 0, 5) == "<?xml") {
echo 'Is XML';
} else {
echo 'Not XML';
}
答案 1 :(得分:9)
$result = simplexml_load_string ($data, 'SimpleXmlElement', LIBXML_NOERROR+LIBXML_ERR_FATAL+LIBXML_ERR_NONE);
if (false == $result) echo 'error';
答案 2 :(得分:1)
也可能是因为返回数据的第一行是空白的 - 在将字符串解析为XML之前尝试$output = trim($output)
。