За последние 24 часа нас посетили 22617 программистов и 1005 роботов. Сейчас ищут 707 программистов ...

Парсер погоды

Тема в разделе "PHP для новичков", создана пользователем xkspy, 17 янв 2010.

  1. xkspy

    xkspy Активный пользователь

    С нами с:
    16 дек 2006
    Сообщения:
    45
    Симпатии:
    0
    Вообщем есть парсер погоды, возникла проблема не отображается один параметр погоды, проблема заключилась вот в чём:
    PHP:
    1.     @preg_match_all('~<font color="red">([^<]*?)</font>~si',$res_str,$tpcsa);
    По цвету "red" забирается погода (это плюсовая температура), а сейчас "navy" (минусовая температура). Подскажите, как сделать чтобы парсировались эти два цвета?
     
  2. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. preg_match_all('~<font color="red">([^<]*?)</font>~si',$res_str,$tpcsa);
    4. if($tpcsa[1][1] == '') { // Смотри в каком элементе температура
    5.   preg_match_all('~<font color="navy">([^<]*?)</font>~si',$res_str,$tpcsa); }
    6.  
     
  3. xkspy

    xkspy Активный пользователь

    С нами с:
    16 дек 2006
    Сообщения:
    45
    Симпатии:
    0
    Neka, спасибо большое.
     
  4. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    preg_match_all('~<font color="(red|navy)">([^<]*?)</font>~si',$res_str,$tpcsa);
    Думаю так элегантнее
     
  5. xkspy

    xkspy Активный пользователь

    С нами с:
    16 дек 2006
    Сообщения:
    45
    Симпатии:
    0
    Сделал вот так:
    PHP:
    1. @preg_match_all('~<font color="[a-z]+">([^<]*?)</font>~si',$res_str,$tpcsa);