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

php天气预报代码(php天气预报网站源码)

hacker2年前 (2022-07-04)黑客技术81

本文目录一览:

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的socket调用可以实现查天气吗

本文分享下,php调用yahoo与sina的天气api,实现实时显示天气预报的代码,有兴趣的朋友研究下吧。

yahoo 天气预报

地址

代码:

复制代码代码示例:

?php

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

class weather {

static $url = ';w=';

static $city = 'Beijing'; //默认城市北京 这里要注意的是 city 要填拼音 我试过用中文有好几个地区都调用不到

static $weatherXML = '';

static $woeid_file = "woeid";

static $file_path = "data/";

/**

* 获得远程xml并缓存到本地

*/

static public function getXML($city = null) {

if ($city != null){

self::$city = $city;

}

self::$weatherXML = self::$file_path . md5(self::$city) . '-weather.xml';

if (file_exists( self::$weatherXML )) {

$fileTime = filemtime ( self::$weatherXML );

$stater = time () - $fileTime - 60 * 60 * 2;

if ($stater 0) {

return true;

}

}

//获取woeid

$woeid = self::getWOEID();

self::$url = self::$url . $woeid[0];

//获取当天 天气

$XML = self::vget(self::$url);

//保存当天 天气到文件

self::cacheXML($XML);

self:: *** ysisXML($XML);

}

static public function *** ysisXML($simple) {

$p = xml_parser_create();

xml_parse_into_struct($p, $simple, $vals, $index);

xml_parser_free($p);

//本周天气

$weekindex = $index['YWEATHER:FORECAST'];

$week = array();

foreach($weekindex as $k=$v){

$week[$k] = $vals[$v]['attributes'];

}

unset($index);

unset($vals);

print_r($week);

/*

yweather:forecast day="Wed" date="18 Sep 2013" low="20" high="32" text="Sunny" code="32"/

* day 星期

* date 日期

* low 更低温度

* high 更高温度

* test 天气状态

* code 天气图标

*/

}

/*

* 取得地区WOEID码

*/

static private function getWOEID(){

static $woeid = array();

if(isset($woeid[self::$city])){

return $woeid[self::$city];

}

if (file_exists( self::$file_path . self::$woeid_file )) {

$woeidSTR = file_get_contents(self::$file_path . self::$woeid_file);

$woeid = json_decode($woeidSTR , true);

if(isset($woeid[self::$city])){

return $woeid[self::$city];

}

}

$geoPlaces = "'".self::$city."%20CH'";

$XML = simplexml_load_file( $geoPlaces );

if(isset($XML-results-place[0])){

$rs = $woeid[self::$city] = $XML-results-place[0]-woeid;

//保存到文件

$woeidSTR = json_encode($woeid);

file_put_contents(self::$file_path . self::$woeid_file, $woeidSTR);

return $rs;

}else{

//如果找不到城市 woeid 默认城市就改为 北京

self::$city = "Beijing";

return self::getWOEID();

}

}

/**

* 创建xml缓存

* @param $contents 要缓存的内容

*/

static private function cacheXML($contents) {

$contents = str_ireplace ( '?xml version="1.0"?', "?xml version=\"1.0\"? \n", $contents );

$contents = mb_convert_encoding ( $contents, 'utf-8', 'gbk' );

file_put_contents ( self::$weatherXML, $contents ) or die ( '没有写权限' );

}

/**

* 模拟获取内容函数

* @param type $url

* @return type

*/

static private function vget($url) {

$user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";

$curl = curl_init (); // 启动一个CURL会话

curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址

curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查

curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在

curl_setopt ( $curl, CURLOPT_USERAGENT, $user_agent ); // 模拟用户使用的浏览器

@curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转

curl_setopt ( $curl, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer

curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的Post请求

curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环

curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 显示返回的Header区域内容

curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回

$tmpInfo = curl_exec ( $curl ); // 执行操作

if (curl_errno ( $curl )) {

curl_close ( $curl ); // 关闭CURL会话

die('Errno' . curl_error ( $curl )) ;

}

curl_close ( $curl ); // 关闭CURL会话

return $tmpInfo; // 返回数据

}

}

weather::getXML("Changsha");

天气预报代码

根据IP地址,显示当地的天气预报:

iframe src="" width=178 height=248 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no align=center id=url/iframe

第二个:265的.

iframe src="" width="168" height="54" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"

/iframe

第三个:腾讯 *** 的:

iframe SRC='' id='ifm2' WIDTH='189' HEIGHT='190' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO'/iframe

第四个:还是腾讯 *** 的:

iframe SRC="" id='ifm1' WIDTH='405' HEIGHT='332' ALIGN='center' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO'/iframe

再送你一款 *** 电台的调用,蛮小巧的:

IFRAME marginWidth=0 marginHeight=0 src="" frameBorder=0 width=255 scrolling=no height=30/IFRAME

网页中加天气预报代码 能显示国外的天气

iframe src=" ;txtcolor=eee " width="205" height="131" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" border="0" //iframe 把这段代码中的 那个网址【 ;txtcolor=eee 】换成有你 想要地方的天气的网址即可,另外注意高度和宽度要适合。原理很简单,你 可以往那儿放个百度试试 追问: iframe src=" ;l=zh-TWp=MSNa=1u=Cs=2m=1x=1d=0fc=00B0F0bgc=bc= " frameborder="0" scrolling="no" width="200" height="130" allowTransparency="true"/iframe 这个是我头刚找到的 你说的我没试出来 谢谢 回答: 那我 都试出来了 呀,,刚才,你 可以吧那代码保存成HTML再打开看看是否如意 追问: iframe src=" ;txtcolor=eee " width="205" height="131" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" border="0" //iframe 是这样改吗 回答: iframe src=" ;l=zh-TWp=MSNa=1u=Cs=2m=1x=1d=0fc=00B0F0bgc=bc= " frameborder="0" scrolling="no" width="200" height="130" allowTransparency="true"/iframe 就用这个代码,保存成HTML再打开看 追问: 这个不是我刚发给你的吗 这个我试过了 可以的 我是说你让我改的没试出来 回答: ;txtcolor=eee " 这网址本来就打不开, 我的 意思是网址你可以随便换,只是注意宽和高,就行

记得采纳啊

怎么用php抓取天气预报?先说下思路,再举个例子。

我昨天刚做了个,本来打算自己用,你既然问,就分享了吧!

PS:因为我是菏泽人,所以,如果你什么都不填,就显示菏泽天气。

如果想显示别的,直接输入就行,比如"香港",然后提交就OK了

不知道是否合乎楼主的意愿(不用 *** )

如何使用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、返回的内容如下:

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

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

本文链接:http://w-123.com/185810.html

“php天气预报代码(php天气预报网站源码)” 的相关文章

Java 加密漏洞 PoC 代码公开,受影响的版本需尽快升级

据Security affairs网站消息,4月21日,安全研究人员Khaled Nassar在Github上公开了Java 中新披露的数字签名绕过漏洞的PoC代码,该漏洞被追踪为CVE-2022-21449(CVSS 分数:7.5)。 漏洞的影响范围主要涉及 Java SE 和 Oracle Gr...

黑客正在利用伪造的执法机构传票窃取苹果、Google 等公司的用户数据

据报道,犯罪黑客正在通过一种有效的、狡猾的技术用偷来的执法部门的电子邮件从大型科技公司、ISP、运营商和社交媒体公司窃取用户数据。据网络安全记者Brian Krebs称,更具体地说,攻击者显然正在伪装成执法官员以获取传票特权数据。 一般来说,他们使用被破坏的执法部门电子邮件账户。 这种策略还依赖于...

新型 LokiLocker 勒索软件会擦除整个 PC 上的文件

黑莓威胁情报(BlackBerry Threat Intelligence)团队刚刚发出警报 —— 一款自 2021 年 8 月存续至今的 LokiLocker 勒索软件,正在互联网上传播肆虐。据悉,该恶意软件采用了 AES + RSA 的加密方案,若用户拒绝在指定期限内支付赎金,它就会擦除其 PC...

谷歌解释野外攻击为何增加 浏览器安全形势在稳中向好

上周,Chrome Security 团队的 Adrian Taylor,在一篇谷歌安全博客文章中解释了“为何在野外被利用的 CVE 漏洞似乎有所增加”。对于这种漏洞利用的可见性增长趋势,归咎于多个方面的因素。而谷歌旗下的 Project Zero 团队,也有对包括 WebKit、IE、Flash、...

攻击者利用 DeFi 投票漏洞卷走 Beanstalk 近 1.82 亿美元加密货币

区块链分析公司 Peck Shield 于周日上午发布警告称,一名攻击者设法从 Beanstalk Farms 中提取了价值约 1.82 亿美元的加密货币。据悉,作为一个旨在平衡不同加密货币资产供需的去中心化金融(DeFi)项目,攻击者利用了 Beanstalk 的“多数投票治理系统”,这也是诸多...

黑客 Gary Bowser 对盗版指控认罪 同意向任天堂支付 450 万美元

名为Gary Bowser的Team-Xecuter黑客组织成员已经承认了与销售硬件和软件有关的指控,这些硬件和软件允许人们在各种游戏机上玩未经授权或盗版的游戏,包括任天堂的几种游戏机。此前,美国任天堂公司在今年早些时候对该黑客发起了诉讼。 被司法部描述为世界上最臭名昭著的电子游戏盗版集团之一的T...

评论列表

美咩嘟醉
2年前 (2022-07-04)

ults] = Array       (           [0] = Array               (                   [currentCity]= 上海                   [weather_data]= Array         

竹祭旧竹
2年前 (2022-07-04)

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

晴枙萌辣
2年前 (2022-07-04)

null) { if ($city != null){ self::$city = $city; } self::$

断渊辞慾
2年前 (2022-07-04)

              [temperature] = 14 ~ 6℃                               )                       )               )       ))7、PHP中自带了处理jso

断渊一镜
2年前 (2022-07-04)

return $woeid[self::$city]; } } $geoPlaces = "'".self::$city."%20CH'";

发表评论

访客

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