PHP天气API接口.doc_第1页
PHP天气API接口.doc_第2页
PHP天气API接口.doc_第3页
PHP天气API接口.doc_第4页
PHP天气API接口.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP天气API接口中国天气网的API还每次还要先去判断ID,再获取天气信息,觉得有点麻烦,所以自己做了一个PHP一部搞定的。还有一个农历API。code=1) return false; $data = $ip-data-city;return $data;function getWeather($cityId)$url=/data/.$cityId.html;$weather=json_decode(file_get_contents($url);return $weather;function json_to_array($web)$arr=array();foreach($web as $k=$w)if(is_object($w) $arr$k=json_to_array($w); /判断类型是不是objectelse $arr$k=$w;return $arr;$city = getCity(getIP();$city = str_split($city,strlen($city)-3);$city =$city0;$cityUrl = /wei/20130921/city.php;$web=json_decode(file_get_contents($cityUrl);$arr=json_to_array($web);$weatherInfo = getWeather($arr$city);echo(weather();echo(json_encode($weatherInfo);echo();?城市源码/uploadfile/2013/0923/20130923081358704.rar无标题文档 var weatherInfo;var lunar;var date = new Date();var g=晴:0 0px,多云:0 -40px,暴雪:0 -480px,大雪-暴雪:0 -480px,暴雨:0 -360px,大雨-暴雨:0 -360px,暴雨-大暴雨:0 -360px,大暴雨-特大暴雨:0 -360px,大暴雪:0 -480px,飑:0 -880px,大雪:0 -440px,中雪-大雪:0 -440px,大雨:0 -320px,中雨-大雨:0 -320px,浮层:0 -920px,雷阵雨:0 -160px,雷阵雨并伴有冰雹:0 -200px,霾:0 -920px,轻雾:0 -840px,雾:0 -840px,冰雹:0 -680px,沙尘暴:0 -760px,强沙尘暴:0 -760px,特大暴雪:0 -520px,小雪:0 -600px,小雨:0 -240px,扬沙:0 -720px,浮尘:0 -920px,龙卷风:0 -800px,弱高吹雪:0 -600px,阴:0 -80px,雨夹雪:0 -400px,冻雨:0 -960px,阵雪:0 -560px,阵雨:0 -120px,中雪:0 -640px,小雪-中雪:0 -640px,小雨-中雨:0 -280px,中雨:0 -280px;$(document).ready(function() $(#weekday).html(date.getDate(); $.getScript(getWeather.php); $.getScript(lunar.php););var weather = function(data)weatherInfo = data;$(.cityWrap .name).html(data.weatherinfo.city);$(.cityInfo .name).html(data.weatherinfo.weather1);$(.cityWrap .info).html(data.weatherinfo.city_en);$(.cityInfo .info).html(data.weatherinfo.st1+);$(.weapic).css(background-position,gdata.weatherinfo.weather1).show();var lunar = function(data)lunar = data;var month = data.month;var day = data.day;$(#lunarday).html(农历+month+day);$(#dateday).html(date.getFullYear()+.+(date.getMonth()+1)+.+date.getDate()+ +getWeek(date.getDay();var getWeek = function(day)switch(day)case 0:return 周一;case 1:return 周二;case 2:return 周三;case 3:return 周四;case 4:return 周五;case 5:return 周六;case 6:return 周日;charset utf-8;* padding: 0;margin: 0;border: none;text-decoration: none;list-style: none;overflow: hidden;input, button, select, textarea outline: none;textarea font-size: 13px;resize: none;body background: #F2F2F2 url(/haoqq/v101/v1img/xs-bg.png) top center no-repeat;.top width: 100%;height: 65px;.top_content width: 960px;height: 65px;margin: 0 auto;#calendarArea width: 155px;height: 65px;float: left;cursor: pointer;padding-left: 15px;#calendarArea:hover, #topWeatherArea:hover background: url(/haoqq/v101/v1img/top-hover.png) top right;.datepic background-image: url(/haoqq/v101/v1img/pur-sprite.png);background-repeat: no-repeat;width: 31px;height: 32px;float: left;text-align: center;font-size: 16px;font-weight: bold;line-height: 32px;display: block;margin: 15px 10px 0 0;float: left;#weekday position: relative;top: 4px;color: #fff;#calendarArea ul float: left;color: #fff;height: 40px;padding-top: 13px;padding-left: 3px;#calendarArea #lunarday font-size: 16px;font-weight: bold;#calendarArea #dateday font-size: 14px;#topWeatherArea width: 165px;height: 65px;float: left;cursor: pointer;color: #fff;padding-left:10px;.cityWrap float: left;margin-top: 15px;padding-left:5px;.weapic width: 40px;height: 40px;background-image: url(/haoqq/v101/v1img/pur-sprite-wea.png);float: left;display: block;margin: 15px 5px 0 5px;background-repeat: no-repeat;display:none;.cityInfo float: left;margin-top: 15px;.namefont-weight: bold;font-size:17px;.infofont-size:14px;lunarInfo$year-$this-MIN_YEAR; if($year=$this-MIN_YEAR&$month=2&$dategetLunarByBetween($year,$this-getDaysBetweenSolar($year,$month,$date,$yearData1,$yearData2); /* * 将阴历转换为阳历 * param year 阴历-年 * param month 阴历-月,闰月处理:例如如果当年闰五月,那么第二个五月就传六月,相当于阴历有13个月,只是有的时候第13个月的天数为0 * param date 阴历-日 */ function convertLunarToSolar($year,$month,$date) $yearData = $this-lunarInfo$year-$this-MIN_YEAR; $between = $this-getDaysBetweenLunar($year,$month,$date); $res = mktime(0,0,0,$yearData1,$yearData2,$year); $res = date(Y-m-d,$res+$between*24*60*60); $day = split_date($res); $year = $day0; $month= $day1; $day = $day2; return array($year, $month, $day); /* * 判断是否是闰年 * param year */ function isLeapYear($year) return ($year%4=0 & $year%100 !=0) | ($year%400=0); /* * 获取干支纪年 * param year */ function getLunarYearName($year) $sky = array(庚,辛,壬,癸,甲,乙,丙,丁,戊,己); $earth = array(申,酉,戌,亥,子,丑,寅,卯,辰,巳,午,未); $year = $year.; return $sky$year3.$earth$year%12; /* * 根据阴历年获取生肖 * param year 阴历年 */ function getYearZodiac($year) $zodiac = array(猴,鸡,狗,猪,鼠,牛,虎,兔,龙,蛇,马,羊); return $zodiac$year%12; /* * 获取阳历月份的天数 * param year 阳历-年 * param month 阳历-月 */ function getSolarMonthDays($year,$month) $monthHash = array(1=31,2=$this-isLeapYear($year)?29:28,3=31,4=30,5=31,6=30,7=31,8=31,9=30,10=31,11=30,12=31); return $monthHash$month; /* * 获取阴历月份的天数 * param year 阴历-年 * param month 阴历-月,从一月开始 */ function getLunarMonthDays($year,$month) $monthData = $this-getLunarMonths($year); return $monthData$month-1; /* * 获取阴历每月的天数的数组 * param year */ function getLunarMonths($year) $yearData = $this-lunarInfo$year - $this-MIN_YEAR; $leapMonth = $yearData0; $bit = decbin($yearData3); for ($i = 0; $i strlen($bit);$i +) $bitArray$i = substr($bit, $i, 1); for($k=0,$klen=16-count($bitArray);$k$klen;$k+) array_unshift($bitArray, 0); $bitArray = array_slice($bitArray,0,($leapMonth=0?12:13); for($i=0; $ilunarInfo$year-$this-MIN_YEAR; $monthArray = $this-getLunarYearMonths($year); $len = count($monthArray); return ($monthArray$len-1=0?$monthArray$len-2:$monthArray$len-1); function getLunarYearMonths($year) /debugger; $monthData = $this-getLunarMonths($year); $res=array(); $temp=0; $yearData = $this-lunarInfo$year-$this-MIN_YEAR; $len = ($yearData0=0?12:13); for($i=0;$i$len;$i+) $temp=0; for($j=0;$jlunarInfo$year-$this-MIN_YEAR; return $yearData0; /* * 计算阴历日期与正月初一相隔的天数 * param year * param month * param date */ function getDaysBetweenLunar($year,$month,$date) $yearMonth = $this-getLunarMonths($year); $res=0; for($i=1;$i0? $year : ($year-1); $yearMonth = $this-getLunarYearMonths($year); $leapMonth = $this-getLeapMonth($year); $between = $between0?$between : ($this-getLunarYearDays($year)+$between); for($i=0;$i13;$i+) if($between=$yearMonth$i) $t=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论