ФорумПрограммированиеPHP для идиотов → правильно выпарсить данные

правильно выпарсить данные

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 31 марта 2009 г. 12:23

    есть текст

    06:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/dobroe_utro.html" class="tv-blue">Доброе утро
    09:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/1channel_novosti.html" class="tv-blue">Новости
    09:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/malahov.html" class="tv-blue">Малахов +
    10:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/modnyjo_prigovor.html" class="tv-blue">Модный приговор
    11:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/kontrolnaya_zakypka.html" class="tv-blue">Контрольная закупка
    12:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/1channel_novosti.html" class="tv-blue">Новости
    12:20</span></td><td class="tv-broadcast-name x soap"><p>Агент национальной безопасности</p><p>Один за другим гибнут преуспевающие бизнесмены, причем почерк убийств одинаков и достаточно необычен&hellip;</p></td></tr><tr><td class="tv-broadcast-time"><span class="tv-time">13:20</span></td><td class="tv-broadcast-name x movie"><a href="http://tv.akado.ru/programs/detektivy.html" class="tv-blue">Детективы
    14:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/drygie_novosti.html" class="tv-blue">Другие новости
    14:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/ponyat._prostit.html" class="tv-blue">Понять. Простить


    название программы может быть как </p> … <p> так и class="tv-blue">…
    пробовал

      if(preg_match("/<p>(.*?)</p>/i", $value)){
    preg_match("#<p>(.*?)</p>#is", $value, $transf);
    $transf = $transf['1'];
    }else{
    preg_match("#tv-blue\">(.*?)#is", $value, $transf);
    $transf = $transf['1'];
    }

    чет не хочет
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 31 марта 2009 г. 12:26, спустя 2 минуты 53 секунды

    #<p\s+(class="tv-blue")?>(.*?)</p>#is

    ой мля
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 31 марта 2009 г. 12:32, спустя 6 минут 5 секунд

    preg_replace('#<p>(.*)</p>|\s*class="tv-blue">(.*)\s*#isU', '\1\2', $text);
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 31 марта 2009 г. 12:44, спустя 11 минут 28 секунд

    :)

    06:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/dobroe_utro.html"Доброе утро
    09:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/1channel_novosti.html"Новости
    09:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/malahov.html"Малахов +
    10:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/modnyjo_prigovor.html"Модный приговор
    11:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/kontrolnaya_zakypka.html"Контрольная закупка
    12:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/1channel_novosti.html"Новости
    12:20</span></td><td class="tv-broadcast-name x soap">Агент национальной безопасностиОдин за другим гибнут преуспевающие бизнесмены, причем почерк убийств одинаков и достаточно необычен&hellip;</td></tr><tr><td class="tv-broadcast-time"><span class="tv-time">13:20</span></td><td class="tv-broadcast-name x movie"><a href="http://tv.akado.ru/programs/detektivy.html"Детективы
    14:00</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/drygie_novosti.html"Другие новости
    14:20</span></td><td class="tv-broadcast-name x"><a href="http://tv.akado.ru/programs/ponyat._prostit.html"Понять. Простить
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 31 марта 2009 г. 13:08, спустя 24 минуты 14 секунд

    че не так чтоль?? #<p>(.+)</p>|class="tv-blue">(.+)#i
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 марта 2009 г. 13:28, спустя 20 минут 21 секунду

    вы пиздец мудаки! ))

    <p[^>]*>(.*?)</p>

    и не ебите моск)
    Сапожник без сапог
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 31 марта 2009 г. 13:32, спустя 3 минуты 22 секунды

    ну пройдись ей по тексту который он дал..
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 марта 2009 г. 13:34, спустя 1 минуту 41 секунду

    Pasha, дай ссылку на страницу откуда пиздишь

    А я тебе сажу как надо жить (с) дуд
    Сапожник без сапог
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 31 марта 2009 г. 13:43, спустя 9 минут 4 секунды

    http://tv.akado.ru/channels/1_kanal.html?channel=36&time=2009-03-30

    Нужно парсить дату и название программы.

    парсю циклом
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 марта 2009 г. 16:16, спустя 2 часа 33 минуты 22 секунды

    Pasha, только мудаки парсят циклом.

    http://94.31.169.103/tv.php

    <?
    header("Content-type: text/html; charset=utf-8");

    $content = file_get_contents("http://tv.akado.ru/channels/1_kanal.html?channel=36&time=2009-03-30");

    preg_match("#<table class=\"tv-channel-full\">(.*?)</table>#ism",$content,$table);
    preg_match_all("#<tr><td class=\"tv-broadcast-time\"><span class=\"tv-time\">(.*?)</span>.*?class=\"tv-blue\">(.*?)</a><p>(.*?)</p>#ism",$table[1],$data,PREG_SET_ORDER);

    echo "<pre>";
    print_r($data);
    Сапожник без сапог
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 марта 2009 г. 16:16, спустя 20 секунд

    коварные парни парсят прегматчоллом
    Сапожник без сапог
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 31 марта 2009 г. 16:35, спустя 19 минут 8 секунд

    йопа) четка) спасиба дюд :)
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 марта 2009 г. 16:52, спустя 16 минут 12 секунд

    не куда
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 3:41, спустя 10 часов 49 минут 24 секунды

    phpdude, а не проще ли первый прег заменить на сабстринг?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 1 апреля 2009 г. 5:02, спустя 1 час 20 минут 37 секунд

    CTAPbIu_MABP, а смысл? время потраченое на скачивание документа сожрет всю эту байт оптимизацию с лихвой. не тсороник байт оптимизации :)
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!