php天气源码下载,php天气预报

本文目录一览:

谁有 15天天气预报 源码 最好是PHP的 或者API接口

你好,目前相关气象部门给出的都是七天天气预报,而且前三天是基本预报,后四天是参考天气,没有15天的毕竟天有不测风云,

php怎么抓取天气预报?

可以借由php的api或者preg_match_all偷偷撷取去达成目的

这里给你一段我给台湾朋友有一段源码

?php

header(\”Content-Type: text/html; charset=utf-8\”);

function getWeather($city){

$toURL = \”

$city.htm\”;

$post = array();

$ch = curl_init();

$options = array(

CURLOPT_REFERER=”,

CURLOPT_URL=$toURL,

CURLOPT_VERBOSE=0,

CURLOPT_RETURNTRANSFER=true,

CURLOPT_USERAGENT=\”Mozilla/4.0 (compatible;)\”,

CURLOPT_POST=true,

CURLOPT_POSTFIELDS=http_build_query($post),

);

curl_setopt_array($ch, $options);

$result = curl_exec($ch); 

curl_close($ch);

//连接中央气象局

echo ‘pre’;

preg_match_all(‘/table class=\”FcstBoxTable01\” [^]*[^]*(.*)\/div/si’,$result, $matches, PREG_SET_ORDER);

preg_match_all(‘/td nowrap=\”nowrap\” [^]*[^]*(.*)\/td/si’,$matches[0][1], $m1, PREG_SET_ORDER);

$m2 = explode(‘/td’,$m1[0][1]);

// print_r($m2);//取得每日资料m2[0~6]

$weather = array();

for($i=0;$i=6;$i++){

preg_match_all(‘/src=[^]*[^](.*)/si’,$m2[$i], $m5, PREG_SET_ORDER);//取得天气图档

$m6 = explode(‘\”‘,$m5[0][0]);

$wi=’

($m6[1],’\.\./\.\./’);

$wtitle = $m6[3];

     print_r($wtitle);

$weather[$i][‘date’] = date(\”m-d\”, mktime(0, 0, 0, date(\”m\”), date(\”d\”)+$i,date(\”Y\”)));

$weather[$i][‘temperature’] = trim(strip_tags($m2[$i]));

$weather[$i][‘title’] = $wtitle;

$weather[$i][‘img’] = $wi;

}

return($weather);

}

  $weather=getWeather(\”Taipei_City\”) ;   

  print_r($weather);

  

// header(\”Location:loc.php\”);

?

首先

$toURL = \”\”;

这里是读取资料的网址

上面的是台湾中央气象局

preg_match_all(‘/table class=\”FcstBoxTable01\” [^]*[^]*(.*)\/div/si’,$result, $matches, PREG_SET_ORDER);

preg_match_all(‘/td nowrap=\”nowrap\” [^]*[^]*(.*)\/td/si’,$matches[0][1], $m1, PREG_SET_ORDER);

这里是截取台湾中央气象局网页信息table class=\”FcstBoxTable01\” [^]*[^]*(.*)\/div的资料以及td nowrap=\”nowrap\” [^]*[^]*(.*)\/td的资料分别是1天跟1周

$m2 = explode(‘/td’,$m1[0][1]);

// print_r($m2);//取得每日资料m2[0~6]

这里是取得每日的资料

preg_match_all(‘/src=[^]*[^](.*)/si’,$m2[$i], $m5, PREG_SET_ORDER);//取得天气图档

这里是取得天气的图档

$m6 = explode(‘\”‘,$m5[0][0]);

$wi=’

($m6[1],’\.\./\.\./’);

$wtitle = $m6[3];

     print_r($wtitle);

$weather[$i][‘date’] = date(\”m-d\”, mktime(0, 0, 0, date(\”m\”), date(\”d\”)+$i,date(\”Y\”)));

$weather[$i][‘temperature’] = trim(strip_tags($m2[$i]));

$weather[$i][‘title’] = $wtitle;

$weather[$i][‘img’] = $wi;

这里是返回的网址,日期,标题,图档等等的资料

  $weather=getWeather(\”Taipei_City\”) ;   

  print_r($weather);

然后这里是显示出地区的一周天气预报

结论:就是如果你想从网站上面截取天气预报

在php可以是用preg_match_all(网页的表格table,表格的列数tr,表格的栏位td,或者更加广泛的标签div等等获取)

php获取天气预报的代码

?php    

$URLStyle = “”;    

$chinaURL = sprintf($URLStyle, “china”);    

$chinaStr = file_get_contents($chinaURL);    

$chinaObj = simplexml_load_string($chinaStr);    

$chinaObjLen = count($chinaObj-city);    

echo “chinaObjLen = “.$chinaObjLen.”\n”;    

for ($i=0;$i$chinaObjLen;$i++){    

//遍历省一级节点,共37个    

        $level1 = $chinaObj-city[$i][“pyName”];    

        $shengjiURL = sprintf($URLStyle, $level1);    

        $shengjiStr = file_get_contents($shengjiURL);    

        //echo $shengjiStr;    

        $shengjiObj = simplexml_load_string($shengjiStr);     

        $shengjiObjLen = count($shengjiObj-city);    

//      echo $chinaObj-city[$i][“quName”];    

//      echo ” “.$shengjiObjLen.”\n”;    

        for ($j=0;$j$shengjiObjLen;$j++){    

        //遍历市一级节点    

                $level2 = $shengjiObj-city[$j][“pyName”];    

                $shijiURL = sprintf($URLStyle, $level2);    

                $shijiStr = file_get_contents($shijiURL);    

                //echo $shijiStr;    

                $shijiObj = simplexml_load_string($shijiStr);     

             //直辖市和海南、台湾、钓鱼岛等没有县级节点    

                if(!$shijiObj){    

                        echo “WARNNING: not exsit next level node. – “.$level1.”-“.$shijiURL.”\n”;    

                        echo ‘  “‘.$shengjiObj-city[$j][“cityname”].'” = ‘;    

                        echo $shengjiObj-city[$j][“url”].”,\n”;    

                        continue;    

                }    

                $shijiObjLen = count($shijiObj-city);    

                //echo $shengjiObj-city[$j][“cityname”].”  “;    

                //echo $shijiObjLen.”\n”;    

                for ($k=0;$k$shijiObjLen;$k++){    

                //遍历县一级节点    

                        $xianji_code = $shijiObj-city[$k][“url”];    

                        echo ‘  “‘.$shijiObj-city[$k][“cityname”].'” = ‘;    

                        echo $shijiObj-city[$k][“url”].”,\n”;    

                        //echo $xianji_code.”\n”;     

                }    

        }    

}           

//print_r($chinaObj);    

?

通过XML接口根节点递归获得全国几千个县以上城市cide code的代码

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/286890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-23 03:49
下一篇 2024-12-23 13:06

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • 使用ActivityWeatherBinding简化天气应用程序的开发

    如何使用ActivityWeatherBinding加快并简化天气应用程序的开发?本文将从以下几个方面进行详细阐述。 一、简介 ActivityWeatherBinding是一个在…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27
  • Python实现天气关系图

    本文将介绍如何使用Python绘制天气关系图,通过分析和可视化天气数据,帮助我们更好地了解天气的变化和趋势。 一、数据准备 首先我们需要从数据源中获取天气数据。我们可以使用爬虫技术…

    编程 2025-04-27
  • PHP与Python的比较

    本文将会对PHP与Python进行比较和对比分析,包括语法特性、优缺点等方面。帮助读者更好地理解和使用这两种语言。 一、语法特性 PHP语法特性: <?php // 简单的P…

    编程 2025-04-27
  • PHP版本管理工具phpenv详解

    在PHP项目开发过程中,我们可能需要用到不同版本的PHP环境来试验不同的功能或避免不同版本的兼容性问题。或者我们需要在同一台服务器上同时运行多个不同版本的PHP语言。但是每次手动安…

    编程 2025-04-24
  • PHP数组去重详解

    一、array_unique函数 array_unique是php中常用的数组去重函数,它基于值来判断元素是否重复,具体使用方法如下: $array = array(‘a’, ‘b…

    编程 2025-04-24

发表回复

登录后才能评论