当前位置:首页 > PHP教程 > php应用 > 列表

php采集天气预报2段代码

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-11 16:46:03 浏览: 评论:0 

现在天气预报网站都提供了解api来调用了,我们可以直接调用并显示在自己的网站上,下面我来给大家分享几段调用天气预报信息的php实例程序吧.

js调用天气预报方法,中国气象台,代码如下:

  1. <iframe src="http://m.weather.com.cn/m/pn12/weather.htm " width="245" height="110"   
  2.  marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0"   
  3.  scrolling="no"></iframe> 

上面是使用了框架方法,不好改自己的格式风格,最简单办法,代码如下:

  1. <?php 
  2. header("content-type:text/html;charset=utf-8"); 
  3. $weather = file_get_contents("http://www.weather.com.cn/data/sk/101280601.html"); 
  4. echo $weather
  5. ?> 

html代码如下:

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html;charset=gbk" /> 
  4. <style type="text/css"
  5. .all span {font:bold 30px/50px "宋体";color:red;} 
  6. </style> 
  7. <title>天气预报</title> 
  8. </head> 
  9. <body> 
  10. <div class="all"
  11. 这里是:<span class="place">城市</span>, 
  12. 气温是<span class="temp">气温</span>, 
  13. 风向:<span class="wind">风向</span>, 
  14. 风力:<span class="windPower">风力</span> 
  15. </div> 
  16. <script type="text/javascript" src="http://127.0.0.1/jquery.js"></script> 
  17. <script type="text/javascript"
  18. $(function () { 
  19. $.ajax({ 
  20. //请求的地址 
  21. url : "http://127.0.0.1/weather.php"
  22. //请求成功后执行的函数 
  23. success : function (data) { 
  24. //用eval()解析返回来的数据,将字符串转成JSON格式 
  25. var oD = eval((+data+)); 
  26. //用jquery-1.8.2获取元素 
  27. var $place = $(".place"), 
  28. $temp = $(".temp"), 
  29. $wind = $(".wind"), 
  30. $windPower = $(".windPower"); 
  31. //将返回来的数据放到相应的位置 
  32. $place.html(oD["weatherinfo"]["city"]); 
  33. $temp.html(oD["weatherinfo"]["temp"] + "°"); 
  34. $wind.html(oD["weatherinfo"]["WD"]); 
  35. $windPower.html(oD["weatherinfo"]["WS"]); 
  36. }); 
  37. }) 
  38. </script> 
  39. </body> 
  40. </html> 

上面是指定城市了,我们可以在自己网站选择城市,例子代码如下:

  1. <?php 
  2. /** 
  3. * php 天气预报代码 
  4. * by www.phpfensi.com 
  5. */ 
  6.     if(!isset($_GET['q'])){ 
  7.         //根据IP查询所在地 
  8.         $p = file_get_contents("http://www.jbxue.com/ip/?q={$_SERVER['HTTP_X_FORWARDED_FOR']}"); 
  9.     } 
  10.     else
  11.         $p = $_GET['q']; 
  12.     } 
  13.     $k = 0; 
  14.     $encoding = mb_detect_encoding()($p); 
  15.     if($encoding != "UTF-8"){ 
  16.         $p = mb_convert_encoding($p,"utf-8","gbk"); 
  17.     } 
  18.     $p_arr = array
  19.        "01" => "北京"
  20.       "02" => "上海"
  21.       "03" => "天津"
  22.       "04" => "重庆"
  23.       "05" => "黑龙江"
  24.       "06" => "吉林"
  25.       "07" => "辽宁"
  26.       "08" => "内蒙古"
  27.       "09" => "河北"
  28.       "10" => "山西"
  29.       "11" => "陕西"
  30.       "12" => "山东"
  31.       "13" => "新疆"
  32.       "14" => "西藏"
  33.       "15" => "青海"
  34.       "16" => "甘肃"
  35.       "17" => "宁夏"
  36.       "18" => "河南"
  37.       "19" => "江苏"
  38.       "20" => "湖北"
  39.       "21" => "浙江"
  40.       "22" => "安徽"
  41.       "23" => "福建"
  42.       "24" => "江西"
  43.       "25" => "湖南"
  44.       "26" => "贵州"
  45.       "27" => "四川"
  46.       "28" => "广东"
  47.       "29" => "云南"
  48.       "30" => "广西"
  49.       "31" => "海南"
  50.       "32" => "香港"
  51.       "33" => "澳门"
  52.       "34" => "台湾" 
  53.     ); 
  54.  
  55.     function find(&$item,$key,$data){ 
  56.         global $k
  57.         if(preg_match("/$item/u",$data)){ 
  58.            $k = $key
  59.         } 
  60.     } 
  61.  
  62.     function get_data_arr($key){ 
  63.         if(!file_exists("./data/city{$key}.xml")){ 
  64.             $c =file_get_contents"http://m.weather.com.cn/data5/city{$key}.xml" );  //开源软件:phpfensi.com 
  65.             file_put_contents("./data/city{$key}.xml",$c); 
  66.         } 
  67.         else
  68.             $c = file_get_contents("./data/city{$key}.xml"); 
  69.         } 
  70.        $arr = explode(",",$c); 
  71.        foreach($arr as $v){ 
  72.            $data = explode("|",$v); 
  73.            $ret[$data[0]] = $data[1]; 
  74.        } 
  75.        return $ret
  76.     } 
  77.  
  78.     array_walk($p_arr,'find',$p); 
  79.     array_walk(get_data_arr($k),'find',$p); 
  80.     array_walk(get_data_arr($k),'find',$p); 
  81.     $ccode = get_data_arr($k); 
  82.     echo file_get_contents("http://m.weather.com.cn/data/{$ccode[$k]}.html"); 
  83. ?> 

还有很多像可以调用更详细的天气信息的我们这里就不介绍了,大家可到天气网站去看他们提供的api接口.

Tags: php采集天气预报 php采集程序

分享到: