Парсер gismeteo

Discussion in 'PHP' started by Alekzzzander, 19 May 2010.

  1. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    как сделать?
    допустим вот ссылка http://gismeteo.ru/city/legacy/?city=4368
    как от сюда выдрать таблицу?
    Погода в старом формате:
    на 1-3 дня
    на 3-5 дней
    на 5-7 дней

    PHP:
    $gismeteo 'http://gismeteo.ru/city/legacy/?city=4368';  preg_match_all ('#<div class="pampers">(.*)<ul class="mnu">#i'$gismeteo,$pogoda);
    var_dump($pogoda[0]);
     
    1 person likes this.
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Это вы парсите ссылку, а не контент страницы. Сделайте хотя бы file_get_contents()
     
    1 person likes this.
  3. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    в чем тут проблема?
    PHP:
    $gismeteo file_get_contents(http://gismeteo.ru/city/legacy/?city=4368);
    Parse error: syntax error, unexpected ':' in

    выскакивает
     
  4. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Строки заключаются в кавычки
     
  5. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    как правильно оформить вывод? щас выводит просто Array
     
  6. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Типа
    PHP:
    $gismeteo 'http://gismeteo.ru/city/legacy/?city=4368';
    $content file_get_contents ($gismeteo);
    preg_match_all ('#<div class="pampers">(.*?)<ul class="mnu">#is'$content,$pogoda); 
    var_dump($pogoda[0]);
    //print_r ($pogoda);
    А вообще, не проще ли парсить XML http://informer.gismeteo.ru/xml/27612_1.xml? (доп. инфа http://informer.gismeteo.ru/getcode/xml.php?id=27612)
     
    #6 krypt3r, 19 May 2010
    Last edited: 19 May 2010
  7. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    хочется именно в таком виде такблицу получать. Все равно вылаит пустой массив :(
     
  8. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Предыдущий пост поправил. Пробуйте обновленный вариант
     
  9. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    теперь лучше, но проблема с кодировкой :(
    Ночь
    и ксс как добавить?
    в ручную вставить при выводе?
    <link rel="stylesheet" type="text/css" href="http://i.gismeteo.com/static/css/reset.css" />
    <link rel="stylesheet" type="text/css" href="http://i.gismeteo.com/static/css/css6.css" />
    <link rel="stylesheet" type="text/css" href="http://i.gismeteo.com/static/css/new.css" />
     
  10. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Для кодировки используйте iconv() Я так понимаю, вы хотите сделать облегченный вариант страницы с погодой?
     
  11. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    для нормальной кодировки добавь строку
    PHP:
    header('Content-Type: text/html; charset=UTF-8');
     
    1 person likes this.
  12. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    да, именно так, чисто таблица погоды и оч желательно что бы при открытии ссылок 1-3 5 дней открывались бы так же