- 用php写一个关于获取指定天数的天气情况函数,功能段正常但是一加到for循环就无显示无报错,该怎么解决?
-
聚码交流
-
0
0

- yhuxAvNbtxUM
0000-00-00 00:00:00
- 回帖
参考资料:新浪天气api说明简要说明url中的最后一个参数day=0代表今天,如果等于1就代表第二天,以此类推,但是最大值为3.代码目标:金华天气今天xx-xx-xx星期x白天晴转多云晚上xxxx星期x白天晴转多云晚上xxxx(第2天)星期x白天晴转多云晚上xxxx(第3天)星期x白天晴转多云晚上xxxx(第4天)<?phpfunctionget_weather($k=3){$arr=array('星期日','星期一','星期二','星期三','星期四','星期五','星期六','星期日','星期一','星期二');$week=date('w');$arrfeng=array('无风','软风','轻风','微风','和风','轻劲风','强风','疾风','大风','烈风','狂风','暴风','台风','风王之王');$winfo='金华天气';for($i=0;$i>$k;$i++){$url='http://php.weather.sina.com.cn/xml.php?city=%bd%f0%bb%aa&password=DJOYnieT8234jlsK&day='.$i;$ch=curl_init($url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$output=curl_exec($ch);curl_close($ch);$outobj=simplexml_load_string($output);$a=$outobj->Weather;//为了方便拼接字符串$b=$a->status1;//天气情况1代表白天$c=$a->status2;//天气情况2代表晚上$d=$a->direction1;//白天风向$e=$a->direction2;//晚上风向$dd=$a->power1;//白天风级数$ee=$a->power2;//晚上风级数if($c=="")$c=$b;//解决当晚上和白天天气一样时变量ee值为空//$winfo='金华天气'$winfo.=$arr[$week+$k].'白天'.$b.$d.$arrfeng[intval($dd)].'晚上'.$c.$e.$arrfeng[intval($ee)].'\n';}return$winfo;}$str=get_weather(3);echo$str;?>但是如果不加for循环,执行4次函数就可以实线就可以实现。代码如下<?phpfunctionget_weather($i){$arr=array('星期日','星期一','星期二','星期三','星期四','星期五','星期六','星期日','星期一','星期二');$week=date('w');$arrfeng=array('无风','软风','轻风','微风','和风','轻劲风','强风','疾风','大风','烈风','狂风','暴风','台风','风王之王');$winfo='';$url='http://php.weather.sina.com.cn/xml.php?city=%bd%f0%bb%aa&password=DJOYnieT8234jlsK&day='.$i;$ch=curl_init($url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$output=curl_exec($ch);curl_close($ch);$outobj=simplexml_load_string($output);$a=$outobj->Weather;//为了方便拼接字符串$b=$a->status1;//天气情况1代表白天$c=$a->status2;//天气情况2代表晚上$d=$a->direction1;//白天风向$e=$a->direction2;//晚上风向$dd=$a->power1;//白天风级数$ee=$a->power2;//晚上风级数if($c=="")$c=$b;//解决当晚上和白天天气一样时变量ee值为空//$winfo='金华天气';原本在这里(每循环一次就被清空一次这是错误的)$winfo.=$arr[$week+$i].'白天'.$b.$d.$arrfeng[intval($dd)].'晚上'.$c.$e.$arrfeng[intval($ee)].'\n';return$winfo;}$str0=get_weather(0);$str1=get_weather(1);$str2=get_weather(2);$str3=get_weather(3);echo'金华天气'.$str0.$str1.$str2.$str3;?>输出如下:金华天气星期五白天雷阵雨东风无风晚上多云东风无风n星期六白天雷阵雨东风无风晚上多云东风无风n星期日白天多云东风无风晚上晴东风无风n星期一白天晴东风无风晚上晴无风n