Scroll
Пытаюсь создать парсер погоды
Форумы
Дан xml
<code>
<day date="2013-02-21">...</day>
<day date="2013-02-22">...</day>
<day date="2013-02-23">...</day>
<day date="2013-02-24">...</day>
<day date="2013-02-25">...</day>
<day date="2013-02-26">...</day>
<day date="2013-02-27">...</day>
<day date="2013-02-28">...</day>
<day date="2013-03-01">...</day>
<day date="2013-03-02">...</day>
</code>
в них свой
<day_part typeid="1" type="morning">...</day_part>
<day_part typeid="2" type="day">...</day_part>
<day_part typeid="3" type="evening">...</day_part>
<day_part typeid="4" type="night">...</day_part>
<day_part typeid="5" type="day_short">...</day_part>
<day_part typeid="6" type="night_short">...</day_part>
при создани модуля погоды на 10 дней столкнулся с проблемой не могу создать цикл для атрибута day
и как понимаю нужен ещё цыкл для day_part но там 2 типа ненадо включать( day_short и night_short)
Помогите с этой бедой.
В php только учусь. И если знаете решение прошу в примере показать, а не просто функцию.
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии
Вам нужно обработать xml, а для этого нужно перевести его в массив. Здесь есть пара примеров как перевести xml в массив:
http://gaarf.info/2009/08/13/xml-string-to-php-array
http://php.net/manual/ru/book.simplexml.php
http://www.bin-co.com/php/scripts/xml2array/
блин я обработал xml без массива чисто вытащил переменные... а есть более проще вариант (мои знание не дорости пока что до массивов)? хочу сделать такой модуль погоды http://ufa1.ru/weather/Ufa/. А цикл foreach ($xml->forecast->day as $day) можно так использовать?
Если у вас day это массив или объект с несколькими значениями, тогда да можно использовать foreach, чтобы перебрать все значения.
А так?
for ($i=0;$i<$m;$i++){
$day_w[$i]=$xml->day[$i]['date'];
$date = new DateTime($day_w[$i]);
echo $date->format('d-m-Y');
for ($f=0;$f<5;$f++){
$day_part=array('1'=>'утром','2'=>'днем','3'=>'вечером','4'=>'ночью');
echo $day_part[$f];
}
}
вроде действенный метод) что скажите?
Вместо этого можно использовать foreach
Там требуется взять только 4 параметра вместо 6ти по этой причине сделал через for. Ну а вообще теоритически верно сделал в будущем с ним проблем не возникнет?
Как правило проблемы возникают только, когда API меняют. Если код работает, то он и будет работать.
Благодарю.