Чтение из XML файла и вывод на сайт

Тема в разделе "PHP", создана пользователем Bizzaro, 22 апр 2011.

Модераторы: latteo
  1. Bizzaro

    Bizzaro Постоялец

    Регистр.:
    1 фев 2010
    Сообщения:
    82
    Симпатии:
    17
    Тапками не кидаться в php я полный чайник. Хочу начать потихоньку изучать и совместить приятное с полезным, так сказать.
    Надо прочитать файл с погодой (от Яши)
    Имеет такую структуру
    Код:
    <weather>
    <date>
    <day>[B]22[/B]</day>
    <month>[B]4[/B]</month>
    <year>[B]2011[/B]</year>
    </date>
    <city>[B]Гатчина[/B]</city>
    <country>[B]Россия[/B]</country>
    <weather_type>[B]облачно[/B]</weather_type>
    <image>[B]http://weather.yandex.ru/i/6.gif[/B]</image>
    <image2>[B]http://weather.yandex.ru/i/5.png[/B]</image2><temperature>[B]+12[/B]</temperature>
    <pressure>[B]757[/B]</pressure>
    <dampness>[B]63[/B]</dampness></weather>
    Надо чтобы из всего этого на сайт на главную страницу вывелось собственно 2 картинки, температура и давление. Все. За готовым решением не посылать :) Хочу на php. Всем спасибо заранее. На DLE сайтик у меня, хотя тут универсально будет.
     
  2. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    PHP:
    $pogoda file_get_contents('http://yandex.ru/pogoda.xml');
    preg_match('/<temperature>(.*?)<\/temperature>/i',$pogoda,$temp);
    preg_match('/<image>(.*?)<\/image>/i',$pogoda,$img1);
    preg_match('/<image2>(.*?)<\/image2>/i',$pogoda,$img2);
    preg_match('/<pressure>(.*?)<\/pressure>/i',$pogoda,$press);
    echo 
    $temp[1]."\n";
    echo 
    $press[1]."\n";
    echo 
    $img1[1]."\n";
    echo 
    $img2[1];
     
    Bizzaro нравится это.
  3. Bizzaro

    Bizzaro Постоялец

    Регистр.:
    1 фев 2010
    Сообщения:
    82
    Симпатии:
    17
    Благодарю, все сработало. Теперь 2 вопрос.
    Выдал мне все текстом аля
    как в php вот эту конструкцию
    Код:
    echo $img1[1]."\n";
    в html теги завести, ну чтобы как картинки отобразились
    Спасибо.

    Добавлено через 9 минут
    А все спасибо, разобрался :)


    Код:
    $wStr = "<img src=".$img2[1]." />";
    echo $wStr;

    Сделал так.

    Добавлено через 28 минут
    Кстати, может подскажете какую литература почитать, что сейчас актуально? Или лучше по единичным статьям и примерам изучать?
     
  4. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    а про DomDocument читали?
     
  5. Bizzaro

    Bizzaro Постоялец

    Регистр.:
    1 фев 2010
    Сообщения:
    82
    Симпатии:
    17
    Нет, по php и вообще по веб программированию ничего пока не читал. Из веба знаю только верстку, ну соответственно HTML, CSS. Раньше на Делфи кодил, думаю с изучением PHP проблем не возникнет, хотя лучше бы Си изучал оно, как то ближе. Синтаксис вообще не привычен. Сейчас на торренты побежал книги качать. Начну с простого :)
     
  6. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Зря :)
    Ну на нем исходники php и написаны ;)
     
  7. Bizzaro

    Bizzaro Постоялец

    Регистр.:
    1 фев 2010
    Сообщения:
    82
    Симпатии:
    17
    Согласен, вот сейчас буду наверстывать упущенное.
    По этому и говорю, что с Си удобнее, синтаксис привычнее. В отличии от Паскаля который ближе. Буду переучиваться ;)
     
  8. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    Bizzaro нравится это.
  9. Matinier

    Matinier Постоялец

    Регистр.:
    5 окт 2009
    Сообщения:
    65
    Симпатии:
    4
    Всё-таки предпочтительней использовать вариант, предложенный zzallexx

    Во-первых, для данного конкретного случая регулярки полностью решают проблему, и не надо использовать всякого рода расширения, которые в конечном итоге заюзают те же регулярки.

    Во-вторых, для использования того же SimpleXML требуется наличие PHP5, для использования регулярных выражений - нет.
     
  10. Bizzaro

    Bizzaro Постоялец

    Регистр.:
    1 фев 2010
    Сообщения:
    82
    Симпатии:
    17
    Я про SimpleXML тоже прочитал, когда начал гуглить на эту тему. Потом понял, что действительно, здесь надо то 4 строки выдернуть и сделал себе по первому примеру. В следущий раз когда ТВ программу буду парсить :) Воспользуюсь наверно SimpleXML