欢迎光临
我们一直在努力

php7.3-解析api接口获取到的xml类型数据

现在还是有好多的api接口返回的数据是xml类型,你像比较典型的就是西部数码的api接口,他只支持返回xml类型的数据,而不是像其他家那样即支持返回xml类型又支持返回json类型的数据。

今天我就拿阿里云的,实际是以前万网的一个免授权的公开查询域名是否可以注册的接口,来演示一下怎么处理返回的xml类型的数据,阿里云的这个公开接口返回的是xml类型的数据,对于处理xml类型的数据,我们的php中有个系统函数simplexml_load_string()可以直接把xml类型的数据直接转换成数组,这样我们再对数组进行处理就可以了。下面是据体的代码,代码中有注释,大家可以把下面的代码改动下,做一个域名查询的小东西。

<?php
//解析xml数据
//php远程GET方式获取api接口数据
function http_request_json($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result[1] = curl_exec($ch); 
    $result[0]= curl_getinfo($ch,CURLINFO_HTTP_CODE); 
    curl_close($ch);
    return $result;
}
//需要查询的域名
$domain="qzze.com";
$url="http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=".$domain;
$str=http_request_json($url);
//数组0返回的是状态码,如果不是200就停止运行
if ($str[0]!=200){
	exit;
}
//解析返回来的数组1中的xml数据
$xml=simplexml_load_string($str[1]);
echo "域名:".$xml->key.'<br/>';
if (strstr($xml->original,"211"))
{
	echo "域名已注册";
}else if (strstr($xml->original,"210"))
{
	echo "域名可以注册";
}else{
	echo "查询错误!";
}

上面是利用阿里云的接口写的一个查询域名是否可以查询的东西,若是调用太频繁会被在一定时间内封接口的,所有大家如果需要在项目中用到这么一个接口,可要适当的去调用,或是找个授权的查询接口用。

赞(2) 打赏
原创文章转载请注明出处:爱编程 » php7.3-解析api接口获取到的xml类型数据
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱编程、一个运维兼程序员的博客!

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏