Приступим, непосредственно, к делу.
XML файл будем брать у gismeteo.ru по адресу: http://informer.gismeteo.ru/xml/26063_1.xml Данный XML файл содержит сводку погоды для Санкт-Петербурга.
Начинаем!
<?php //считываем содержимое файла в переменную $xml $xml = file_get_contents('http://informer.gismeteo.ru/xml/26063_1.xml'); //передаём содержимое xml файла расширению SimpleXML $res = simplexml_load_string($xml); //Запускаем цикл для отображения погоды на сегодня и завтра for ($i = 0; $i < count ($res->REPORT->TOWN->FORECAST); $i++) {
//время суток прогноза погоды switch ((int)$res->REPORT->TOWN->FORECAST[$i]->attributes()->tod): case 0: $time = 'Ночь'; break; case 1: $time = 'Утро'; break; case 2: $time = 'День'; break; case 3: $time = 'Вечер'; break; default: $time = 'Время суток не известно'; break; endswitch;
//выбор облачности switch ((int) $res->REPORT->TOWN->FORECAST[$i]->PHENOMENA->attributes()->cloudiness): case 0: $cloudiness = 'Ясно'; break; case 1: $cloudiness = 'Малооблачно';break; case 2: $cloudiness = 'Облачно'; break; case 3: $cloudiness = 'Пасмурно'; break; default : $cloudiness = 'Облачность не определена'; break; endswitch;
//определение типа осадков switch ((int) $res->REPORT->TOWN->FORECAST[$i]->PHENOMENA->attributes()->precipitation): case 4: $precipitation = 'Дождь'; break; case 5: $precipitation = 'Ливень'; break; case 6: case 7: $precipitation = 'Снег'; break; case 8: $precipitation = 'Гроза'; break; case 9: $precipitation = 'Нет данных'; break; case 10: $precipitation = 'Без осадков'; break; default : $precipitation = 'Осадки не определены'; break; endswitch;
//день на который осуществляется прогноз $day = $res->REPORT->TOWN->FORECAST[$i]->attributes()->day; //месяц на который осуществляется прогноз $month = $res->REPORT->TOWN->FORECAST[$i]->attributes()->month; //год на который осуществляется прогноз $year = $res->REPORT->TOWN->FORECAST[$i]->attributes()->year; //минимальная температура $t_min = $res->REPORT->TOWN->FORECAST[$i]->TEMPERATURE->attributes()->min; $t_max = $res->REPORT->TOWN->FORECAST[$i]->TEMPERATURE->attributes()->max;
//выводим пользователю прогноз echo $day.'.'.$month.'.'.$year.' '.$time.'<br />';echo 'Температура воздуха: '.$t_min.'-'.$t_max.'<br />'; echo 'Облачность: '.$cloudiness.'<br />'; echo 'Осадки: '.$precipitation.'<br /><br />'; } ?>
Если вы получите ошибку вида: call to undefined function simplexml_load_string(), это говорит о том, что расширение SimpleXML не стоит у вас на сервере.
Код данного скрипта хорошо прокомментирован и в нём не сложно разобраться. Также вы можете открыть сам XML файл и рассмотреть более детально функционирование скрипта.
Пример работы скрипта вы можете увидеть по адресу http://wapcoder.com/simplexml.php
Автор статьи: windoctor e-mail: admin@wapcoder.com, admin@windoctor.org Сайт автора: http://sultanov.net, http://wapcoder.org, http://windoctor.org
Все вопросы вы можете задать на форуме wapcoder.com или по e-mail При перечатке материалов необходимо установить видимую ссылку на http://wapcoder.com
|