查看: 2748|回复: 0

通过IP自动获取天气数据

[复制链接]

39

主题

39

帖子

254

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
254

最佳新人活跃会员优秀版主

发表于 2018-12-8 15:44:49 | 显示全部楼层 |阅读模式



PHP代码

  1. <?php
  2. //获取IP
  3. function GetIP()
  4. {
  5. if(!empty($_SERVER["HTTP_CLIENT_IP"]))
  6. $cip = $_SERVER["HTTP_CLIENT_IP"];
  7. else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
  8. $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  9. else if(!empty($_SERVER["REMOTE_ADDR"]))
  10. $cip = $_SERVER["REMOTE_ADDR"];
  11. else
  12. $cip = "无法获取!";
  13. return $cip;
  14. }
  15. /**
  16. * 通过淘宝IP接口获取IP地理位置
  17. * @param string $ip
  18. * @return: string
  19. **/
  20. function getCity($ip)
  21. {
  22. $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
  23. $ipinfo=json_decode(file_get_contents($url));
  24. if($ipinfo->code=='1'){
  25. return false;
  26. }
  27. $city =$ipinfo->data->city;
  28. //地区 城市
  29. return $city;
  30. }
  31. function foreachFun($d,$type)
  32. {
  33. foreach ($d["goods"] as $key => $value) {
  34. if($value["city_name"] == $type){
  35. $results = $value["city_code"];
  36. }
  37. }
  38. return $results;
  39. }
  40. //function weather_get_time()
  41. // 从文件中读取数据到PHP变量
  42. $json_string = file_get_contents('city.json');
  43. //var_dump($json_string);
  44. // 用参数true把JSON字符串强制转成PHP数组
  45. $data = json_decode($json_string, true);

  46. $IP= GetIP();//获取IP
  47. $area= getCity($IP); //获取地区
  48. $cityID=foreachFun($data,$area);

  49. $html = json_decode(file_get_contents("http://t.weather.sojson.com/api/weather/city/".$cityID));//获取天气json
复制代码
附件在这里:
包含两个文件,一个是PHP文件,一个是地区代码json文件
tianqi.rar (33.54 KB, 下载次数: 710)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表