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

 更新时间:2015年01月04日 11:22:28   投稿:shichen2014  
这篇文章主要介绍了php采集自中央气象台范围覆盖全国的天气预报代码实例,较为详细的分析了采集的技巧及对应接口的调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

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

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

php天气预报代码如下:

复制代码 代码如下:
/*
作者:    freemouse
主页:    www.cnphp.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),'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");

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

相关文章

  • php 中英文语言转换类代码

    php 中英文语言转换类代码

    突然想做个中英文的功能试一下,只是把一些常用且有规律的词汇比如 ‘评论’ ,时间单位(几秒几小时前这些)可以自由的转化。
    2011-08-08
  • PHP实现字符串的全排列详解

    PHP实现字符串的全排列详解

    在本篇文章里小编给大家整理了关于PHP实现字符串的全排列的相关知识点内容,需要的朋友们学习参考下。
    2019-04-04
  • PHP连接access数据库

    PHP连接access数据库

    在PHP中连接access数据库的话我们必须ADO来连接,这跟ASP中连接数据库非常的类似.下边给出了一段DEMO供大家参考.
    2008-03-03
  • php写入文件不覆盖的实例讲解

    php写入文件不覆盖的实例讲解

    在本篇文章里小编给大家分享关于php写入文件不覆盖的实例讲解以及知识点总结,需要的可以参考下。
    2019-09-09
  • PHP使用redis实现统计缓存mysql压力的方法

    PHP使用redis实现统计缓存mysql压力的方法

    这篇文章主要介绍了PHP使用redis实现统计缓存mysql压力的方法,涉及PHP操作MySQL数据库及使用Redis统计的相关技巧,需要的朋友可以参考下
    2015-11-11
  • IIS下配置Php+Mysql+zend的图文教程

    IIS下配置Php+Mysql+zend的图文教程

    IIS下配置Php+Mysql+zend的图文教程...
    2006-12-12
  • php自定义类fsocket模拟post或get请求的方法

    php自定义类fsocket模拟post或get请求的方法

    这篇文章主要介绍了php自定义类fsocket模拟post或get请求的方法,涉及php使用socket模拟post及get请求的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP使用逆波兰式计算工资的方法

    PHP使用逆波兰式计算工资的方法

    这篇文章主要介绍了PHP使用逆波兰式计算工资的方法,实例分析了php逆波兰式算法的原理与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php+mysql数据库查询实例

    php+mysql数据库查询实例

    这篇文章主要介绍了php+mysql数据库查询的方法,实例分析了数据库查询的原理与完整实现步骤,并进行了针对性的分析说明,需要的朋友可以参考下
    2015-01-01
  • php生成静态文件的多种方法分享

    php生成静态文件的多种方法分享

    最近需要将自己写的php文件生成静态,经过查找,发现有多种方法,不同需求可以选择不同的方法
    2012-07-07

最新评论