header("content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
error_reporting(0);
// IP를 기준으로 도시 결정
$user_ip = $_SERVER['REMOTE_ADDR'];
$url ="http://int.dpool.sina.com.cn/iplookup/iplookup.php ?format =json&ip=$user_ip";
$address = file_get_contents($url);
$address_arr = json_decode($address); // 객체를 반환하고 배열로 변환해야 함
//상하이를 예로 들어
stdClass Object | |
( | |
[ret] => 1 | |
[start] => -1 | |
[end] => -1 | |
[country] => 中国 | |
[province] => 上海 | |
[city] => 上海 | |
[district] => | |
[isp] => | |
[type] => | |
[desc] => | |
) |
Array | |
( | |
[ret] => 1 | |
[start] => -1 | |
[end] => -1 | |
[country] => 中国 | |
[province] => 上海 | |
[city] => 上海 | |
[district] => | |
[isp] => | |
[type] => | |
[desc] => | |
) |
$city = $address_arr["city"]
//출력은 상하이이며, 획득한 도시는 Baidu Weather API를 통해 현지 날씨를 쿼리할 수 있습니다
$con=file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=$city&output=json&ak=spmMww7Eoqcmf3FXbnLyDUwL") //ak 값은 다음을 통해 등록해야 합니다. Baidu 인터페이스, 첨부된 주소: http://lbsyun.baidu.com/apiconsole/key
$con = json_decode($con);
print_r($con);
stdClass 객체 | |
( | |
[오류] => 0 | |
[상태] => 성공 | |
[날짜] => 2016-09-23 | |
[결과] => 배열 | |
( | |
[0] => stdClass 객체 | |
( | |
[현재 도시] => 상해 | |
[pm25] => 42 | |
[색인] => 배열 | |
( | |
[0] => stdClass 객체 | |
( | |
[제목] => 穿衣 | |
[zs] => 덥다 | |
[팁] => 穿衣指数 | |
[des] => 天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。 | |
) | |
[1] => stdClass 객체 | |
( | |
[제목] => 洗车 | |
[zs] => 较适宜 | |
[팁] => 洗车指数 | |
[des] => 较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。 | |
) | |
[2] => stdClass 객체 | |
( | |
[제목] => 旅游 | |
[zs] => 适宜 | |
[팁] => 旅游指数 | |
[des] => 天气较好,但丝毫不会影响您丝游。温島适宜又有微风游,适宜旅游。 | |
) | |
[3] => stdClass 객체 | |
( | |
[제목] => ㅋㅋㅋ | |
[zs] => 少发 | |
[팁] => 感冒指数 | |
[des] => 各项气象条件适宜,无明显降温过程,发生感冒机率较低。 | |
) | |
[4] => stdClass 객체 | |
( | |
[제목] => 스포츠 | |
[zs] => 더 적합함 | |
[tipt] => 스포츠지수 | |
[des] => 날씨가 좋은데, 야외 운동 시 자외선 차단에 유의하시기 바랍니다. 실내운동을 권장합니다. | |
) | |
[5] => stdClass 객체 | |
( | |
[제목] => 자외선 강도 | |
[zs] => 약함 | |
[tipt] => 자외선 강도 지수 | |
[des] => 자외선의 강도가 약하기 때문에 외출 전 SPF 12~15 PA+의 자외선 차단 스킨케어 제품을 바르는 것이 좋습니다. | |
) | |
) | |
[weather_data] => 배열 | |
( | |
[0] => stdClass 객체 | |
( | |
[날짜] => 9월 23일 금요일(실시간: 26℃) | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/duoyun.png | |
[날씨] => 흐림 | |
[바람] => 동풍 | |
[온도] => 27~21℃ | |
) | |
[1] => stdClass 객체 | |
( | |
[날짜] => 토요일 | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/duoyun.png | |
[날씨] => 흐림 | |
[바람] => 동풍 | |
[온도] => 28~23℃ | |
) | |
[2] => stdClass 객체 | |
( | |
[날짜] => 일요일 | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png | |
[날씨] => 흐림~흐림 | |
[바람] => 동풍 | |
[온도] => 28~23℃ | |
) | |
[3] => stdClass 객체 | |
( | |
[날짜] => 월요일 | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png | |
[날씨] => 흐림~흐림 | |
[바람] => 북동풍 | |
[온도] => 29~25℃ | |
) | |
) | |
) | |
) | |
) |
$arr = object_array($con); //계속해서 배열 연산으로 변환
$detail = $arr["results"][0]["weather_data"];
$city = $arr["results"][0]["currentCity"];
print_r($detail);
Array | |
( | |
[0] => Array | |
( | |
[date] => 周五 09月23日 (实时:26℃) | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/duoyun.png | |
[weather] => 多云 | |
[wind] => 东风微风 | |
[temperature] => 27 ~ 21℃ | |
) | |
[1] => Array | |
( | |
[date] => 周六 | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/duoyun.png | |
[weather] => 多云 | |
[wind] => 东风微风 | |
[temperature] => 28 ~ 23℃ | |
) | |
[2] => Array | |
( | |
[date] => 周日 | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png | |
[weather] => 多云转阴 | |
[wind] => 东风微风 | |
[temperature] => 28 ~ 23℃ | |
) | |
[3] => Array | |
( | |
[date] => 周一 | |
[dayPictureUrl] => http://api.map.baidu.com/images/weather/day/duoyun.png | |
[nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png | |
[weather] => 多云转阴 | |
[wind] => 东北风微风 | |
[temperature] => 29 ~ 25℃ | |
) | |
) |
//날씨 데이터를 받아 필요에 따라 조정하세요
?>