php采集自中央气象台范围覆盖全国的天气预报代码实例

本文实例讲述了PHP采集自中央气象台范围覆盖全国的天气预报代码分享给大家供大家参考。具体分析如下:

天气预报信息采集自中央气象台,信息准确,覆盖面广,代码简单,返回是json代码,可以用于客户端调用,也可以在服务器端处理后显示,笔者的wordpress天气预报插件就是使用的这段代码,需要注意的是,这段代码会在服务器产生缓存文件,需要在当前目录中新建data文件夹,保证文件夹可写.

PHP天气预报代码如下:

代码如下:
PHP.info 接口demo: http://www.cnPHP.info/tianqi 用法: 可以直接调用上面的地址会显示当地的天气信息,也可以这样用 http://www.cnPHP.info/tianqi/?q=江苏省南京市 **/

$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),$p); $ccode = get_data_arr($k); echo file_get_contents("http://m.weather.com.cn/data/{$ccode[$k]}.html");

希望本文所述对大家的PHP程序设计有所帮助。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...