当前位置:首页 > 黑客技术 > 正文内容

php天气预报接口(百度天气预报接口)

hacker3年前 (2022-07-15)黑客技术191

本文目录一览:

php如何获得当地的天气预报 - 技术问答

这个无需PHP做。前端就可以获取,直接搜索天气API,会有很多天气接口。

或者

如何使用PHP调用API接口实现天气查询功能

最近在做微信公众平台测试时,想在里面子菜单上添加查询未来几天(包括今天)天气的功能,就查找了下好用的天气预报查询接口API,使用比较多的有:国家气象局天气接口、新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等,我使用的是百度提供的免费天气查询接口API,下面与大家分享下...

1、查询方式:

百度提供的是根据纬度和城市名查询天气情况

2、接口事例:

3、接口参数说明:

4、返回结果说明:

5、

//城市名

$city = '上海';

//对json格式的字符串进行编码

$arr =json_decode($str,TRUE);

print_r($atr);

//城市名

   $city = '上海';

 

   //获取json格式的数据

   $str =file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");

   //对json格式的字符串进行编码

   $arr =json_decode($str,TRUE);      

   print_r($atr);

6、返回页面的是json编码后的数据:

[plain] view plain copy print?

meta charset="UTF-8"

Array

(

[error] = 0

[status] = success

[date] = 2014-03-17

[results] = Array

(

[0] = Array

(

[currentCity]= 上海

[weather_data]= Array

(

[0]= Array

(

[date] = 周一(今天, 实时:19℃)

[dayPictureUrl] =

[nightPictureUrl] =

[weather] = 晴

[wind] = 西南风3-4级

[temperature] = 13℃

)

[1] = Array

(

[date]= 周二

[dayPictureUrl] =

[nightPictureUrl] = 

[weather]= 多云转阴

[wind]= 东北风3-4级

[temperature] = 24 ~ 9℃

)

[2] = Array

(

[date]= 周三

[dayPictureUrl] =

[nightPictureUrl] = 

[weather]= 中雨转小雨

[wind]= 东北风3-4级

[temperature] = 15 ~ 8℃

)

[3] = Array

(

[date]= 周四

[dayPictureUrl] =

[nightPictureUrl] =

[weather]= 多云转晴

[wind]= 北风3-4级

[temperature] = 14 ~ 6℃

)

)

)

)

)

meta charset="UTF-8"

Array

(

   [error] = 0

   [status] = success

   [date] = 2014-03-17

   [results] = Array

       (

           [0] = Array

               (

                   [currentCity]= 上海

                   [weather_data]= Array

                       (

                           [0]= Array

                               (

                                  [date] = 周一(今天, 实时:19℃)

                                  [dayPictureUrl] =

                                  [nightPictureUrl] =

                                   [weather] = 晴

                                  [wind] = 西南风3-4级

                                  [temperature] = 13℃

                               )

                           [1] = Array

                               (

                                   [date]= 周二

                                  [dayPictureUrl] =

                                  [nightPictureUrl] =

                                   [weather]= 多云转阴

                                   [wind]= 东北风3-4级

                                  [temperature] = 24 ~ 9℃

                               )

                           [2] = Array

                               (

                                   [date]= 周三

                                  [dayPictureUrl] =

                                  [nightPictureUrl] =

                                   [weather]= 中雨转小雨

                                   [wind]= 东北风3-4级

                                  [temperature] = 15 ~ 8℃

                               )

                           [3] = Array

                               (

                                   [date]= 周四

                                  [dayPictureUrl] =

                                   [nightPictureUrl] =

                                   [weather]= 多云转晴

                                   [wind]= 北风3-4级

                                  [temperature] = 14 ~ 6℃

                               )

                       )

               )

       )

)

7、PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:

[php] view plain copy print?

metacharset="UTF-8"

?php

//城市名

$city = '上海';

//获取json格式的数据

$str = file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");

//对json格式的字符串进行编码

$arr = json_decode($str,TRUE);

echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."br /br /";

foreach($arr['results'][0]['weather_data']as $val)

{

echo $val['date']."br/";

echo "天气:{$val['weather']}br/";

echo "风向:{$val['wind']}br/";

echo "温度:{$val['temperature']}br/br /";

}

?

metacharset="UTF-8"

?php

   //城市名

   $city = '上海';

 

   //获取json格式的数据

   $str = file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");

   //对json格式的字符串进行编码

   $arr = json_decode($str,TRUE);      

   echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."br /br /";

   foreach($arr['results'][0]['weather_data']as $val)

   {

       echo $val['date']."br/";

       echo "天气:{$val['weather']}br/";

       echo "风向:{$val['wind']}br/";

       echo "温度:{$val['temperature']}br/br /";

   }

?

8、返回的内容如下:

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的代码

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等等获取)

扫描二维码推送至手机访问。

版权声明:本文由黑客技术发布,如需转载请注明出处。

本文链接:https://w-123.com/201757.html

“php天气预报接口(百度天气预报接口)” 的相关文章

基于800个恶意 NPM 包的大规模供应链攻击

Hackernews 编译,转载请注明出处: 一个名为“RED-LILI”的攻击者发布了近800个恶意模块,与正在进行的针对 NPM 软件包库的大规模供应链攻击活动联系紧密。 以色列安全公司 Checkmarx 说: “通常,攻击者使用一个匿名的一次性 NPM 帐户发动攻击。”“这一次,攻击...

研究人员发现三个联想电脑的 UEFI 漏洞 影响规模可达数百万台

根据The Hacker News的报道,有三个高影响的统一可扩展固件接口(UEFI)安全漏洞被公布,即CVE-2021-3970、CVE-2021-3971和CVE-2021-3972,已被发现它们会影响联想的各种设备,如联想Flex、IdeaPads和Yoga笔记本电脑。 最初,CVE-202...

快速清洁 APP 要慎用,银行木马可能藏身其中

Hackernews 编译,转载请注明出处: 一个新的安卓银行木马通过官方的 Google Play Store 分发,安装量超过50,000次,其目的是针对56家欧洲银行,从受损的设备中获取敏感信息。 这款恶意软件被荷兰安全公司ThreatFabric命名为 Xenomorph,据说它与另...

苹果 Safari 浏览器漏洞允许跨站点用户跟踪

Hackernews 编译,转载请注明出处: 在苹果 Safari 15的 IndexedDB API 实现中放入的一个软件漏洞可能被恶意网站利用,以追踪用户在网络浏览器中的在线活动,更糟糕的是,它还可能泄露用户的身份。 2021年11月28日,防欺诈保护软件公司 FingerprintJS...

DEV-0343 APT 瞄准美国和以色列的国防技术公司

微软威胁情报中心(MSTIC)和微软数字安全部门(DSU)的研究人员发现了一个恶意活动群体,跟踪为DEV-0343,它的目标是美国和以色列国防技术公司的Office 365租户。 攻击者针对目标组织发起了大规模的密码喷洒攻击,这一恶意活动于2021年7月首次被发现。 “DEV-0343是微软威胁情...

Microsoft Power 的默认设置导致 3800 万份记录数据对外部暴露

据外媒报道,许多公司都在使用微软的Power App平台,由于默认安全设置较弱,所以这意味着3800万份记录的敏感数据向公众公开了好几个月。Upguard进行的调查显示,Power App用户中有相当多的人没有保护自己的数据库。 进一步的调查显示,这个问题是由薄弱的默认安全设置造成的,如果用户不采...

评论列表

只酷夙世
3年前 (2022-07-15)

yname"]."  ";                    //echo $shijiObjLen."\n";                    for ($k=0;$k$shijiObjLen;$k++

惑心忿咬
3年前 (2022-07-15)

                     )                           [1] = Array                               

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。