php地方天气

本文介绍了一种使用PHP从用户IP地址获取地理位置,并调用百度地图API和天气API来获取对应位置天气信息的方法。通过解析JSON数据,实现了在网页上显示用户所在城市的天气状况,包括天气代码、天气描述、舒适度简述及详细说明。
<?php
header("Content-type: text/html; charset=utf-8");
//获取IP的函数
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = "无法获取!";
}
return $cip;
}
$ip= GetIP();
$urllocation="http://api.map.baidu.com/location/ip?ak=TFyi03cqGpZAREZbhsboBTzE&ip=".$ip;
$location=json_decode(send_post($urllocation),true);
echo ($location["address"]);
//baidu ipapi http://developer.baidu.com/map/index.php?title=webapi

//发送post请求
$url = 'http://apis.baidu.com/heweather/weather/free?city=wenzhou';
function send_post($url){
$ch = curl_init();
$header = array(
'apikey: 7728db103ad7e801f1225d488ddce370',
);
// 添加apikey到header
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 执行HTTP请求
curl_setopt($ch , CURLOPT_URL , $url);
return curl_exec($ch);
}

//天气数据存在$weather变量中
$weahter=json_decode(send_post($url))->{"HeWeather data service 3.0"}[0];
echo ($weahter->{"basic"}->{"city"}."<br>");
echo ($weahter->{"now"}->{"cond"}->{"code"}."<br>");
echo ($weahter->{"now"}->{"cond"}->{"txt"}."<br>");
echo ($weahter->{"suggestion"}->{"comf"}->{"brf"}."<br>");
echo ($weahter->{"suggestion"}->{"comf"}->{"txt"}."<br>");
?>

转载于:https://www.cnblogs.com/wz0107/p/4993066.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值