现在天气预报网站都提供了解api来调用了,我们可以直接调用并显示在自己的网站上,下面我来给大家分享几段调用天气预报信息的php实例程序吧.
js调用天气预报方法,中国气象台,代码如下:
<iframe src="http://m.weather.com.cn/m/pn12/weather.htm " width="245" height="110" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
上面是使用了框架方法,不好改自己的格式风格,最简单办法,代码如下:
<?php header("content-type:text/html;charset=utf-8"); $weather = file_get_contents("http://www.weather.com.cn/data/sk/101280601.html"); echo $weather;
html代码如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gbk" /> <style type="text/css"> .all span {font:bold 30px/50px "宋体";color:red;} </style> <title>天气预报</title> </head> <body> <div class="all"> 这里是:<span class="place">城市</span>, 气温是<span class="temp">气温</span>, 风向:<span class="wind">风向</span>, 风力:<span class="windPower">风力</span> </div> <script type="text/javascript" src="http://127.0.0.1/jquery.js"></script> <script type="text/javascript"> $(function () { $.ajax({ //请求的地址 url : "http://127.0.0.1/weather.php", //请求成功后执行的函数 success : function (data) { //用eval()解析返回来的数据,将字符串转成JSON格式 var oD = eval((+data+)); //用jquery-1.8.2获取元素 var $place = $(".place"), $temp = $(".temp"), $wind = $(".wind"), $windPower = $(".windPower"); //将返回来的数据放到相应的位置 $place.html(oD["weatherinfo"]["city"]); $temp.html(oD["weatherinfo"]["temp"] + "°"); $wind.html(oD["weatherinfo"]["WD"]); $windPower.html(oD["weatherinfo"]["WS"]); } }); }) </script> </body> </html>
上面是指定城市了,我们可以在自己网站选择城市,例子代码如下:
<?php /** * php 天气预报代码 * by www.phprm.com */ if(!isset($_GET['q'])){ //根据IP查询所在地 $p = file_get_contents("http://www.jbxue.com/ip/?q={$_SERVER['HTTP_X_FORWARDED_FOR']}"); } else{ $p = $_GET['q']; } $k = 0; $encoding = mb_detect_encoding()($p); if($encoding != "UTF-8"){ $p = mb_convert_encoding($p,"utf-8","gbk"); } $p_arr = array( "01" => "北京", "02" => "上海", "03" => "天津", "04" => "重庆", "05" => "黑龙江", "06" => "吉林", "07" => "辽宁", "08" => "内蒙古", "09" => "河北", "10" => "山西", "11" => "陕西", "12" => "山东", "13" => "新疆", "14" => "西藏", "15" => "青海", "16" => "甘肃", "17" => "宁夏", "18" => "河南", "19" => "江苏", "20" => "湖北", "21" => "浙江", "22" => "安徽", "23" => "福建", "24" => "江西", "25" => "湖南", "26" => "贵州", "27" => "四川", "28" => "广东", "29" => "云南", "30" => "广西", "31" => "海南", "32" => "香港", "33" => "澳门", "34" => "台湾" ); function find(&$item,$key,$data){ global $k; if(preg_match("/$item/u",$data)){ $k = $key; } } function get_data_arr($key){ if(!file_exists("./data/city{$key}.xml")){ $c =file_get_contents( "http://m.weather.com.cn/data5/city{$key}.xml" ); file_put_contents("./data/city{$key}.xml",$c); } else{ $c = file_get_contents("./data/city{$key}.xml"); } $arr = explode(",",$c); foreach($arr as $v){ $data = explode("|",$v); $ret[$data[0]] = $data[1]; } return $ret; } array_walk($p_arr,'find',$p); array_walk(get_data_arr($k),'find',$p); array_walk(get_data_arr($k),'find',$p); $ccode = get_data_arr($k); echo file_get_contents("http://m.weather.com.cn/data/{$ccode[$k]}.html");
还有很多像可以调用更详细的天气信息的我们这里就不介绍了,大家可到天气网站去看他们提供的api接口.
文章网址:
随意转载^^但请附上教程地址。