Code:
/*
调用API获取指定城市的天气数据,并输出
*/
echo "";
$url="/data/101210101.html"; //101210101是杭州的城市代码
$info=json_decode(file_get_contents($url)); //获取指定URL的页面内容,并转换为json数组
$weather_info = toArray(get_object_vars($info)); //通过get_object_vars()得到的数据其实是object stdclass类型,所以必须转换为array类型
$info=$weather_info['weatherinfo']; //得到的数据中还嵌套了一个数组weatherinfo,所以需要进行转化
$str=$info['date_y'].','.$info['week'].'。'.$info['city'].'气温:'.$info['temp1'].',天气:'.$info['weather1'];
echo $str;
//转换为array类型对象
function toArray($data){
if(is_object($data))
$data=get_object_vars($data);
return is_array($data)?array_map(__FUNCTION__, $data):$data; //array_map():将回调函数作用到给定数组的单元上
}
//将array类型对象转换为object类型
function toObject($data){
return is_array($data)?(object)array_map(__FUNCTION__, $data):$data;
}
?>
需要特别注意的是:一定要把通过get_object_vars()函数获取的数据转化为array数组形式,不然,后面输出数据时就会提示输出类型错误。
Tagged on: api, php
发表评论
电子邮件地址不会被公开。 必填项已用*标注
姓名 *
电子邮件 *
站点
评论
您可以使用这些HTML标签和属性: