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

前端技术 2023/09/04 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\");

本文地址:https://www.stayed.cn/item/9731

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。