html парсер

Тема в разделе "PHP", создана пользователем globalmoney, 26 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. globalmoney

    globalmoney

    Регистр.:
    28 апр 2007
    Сообщения:
    401
    Симпатии:
    29
    как парсить определённый контент с сайта, т.е. например то, что находится внутри тегов <table></table> ?
    т.е. нужно именно вместе со всеми тегами, чтобы потом выдать результат парсинга, посетителю, в виде html страницы ( точно так же, как это выглядело бы только при использовании file_get_contents(); ).
    подгружаю нужную страничку, через file_get_contents(); но как из загруженой страницы, выдернуть то, что мне необходимо, понять не могу. :(
    пробовал использовать регулярные выражения, но результат не тот, который требуется.
     
  2. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    либо через регулярки
    PHP:
    preg_match('%<table>(.*?)</table>%iUms'$content$ret);
    echo(
    $ret[1]);
    либо через
    http://simplehtmldom.sourceforge.net/
     
    globalmoney нравится это.
  3. globalmoney

    globalmoney

    Регистр.:
    28 апр 2007
    Сообщения:
    401
    Симпатии:
    29
    не работает, пишет Undefined offset: 1

    Хотелось бы всё таки обойтись без этого, но если не получится, придётся использовать данный класс.
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Выложи прям этот кусок кода вместе с таблицей здесь, а там посмотрим.
     
    globalmoney нравится это.
  5. globalmoney

    globalmoney

    Регистр.:
    28 апр 2007
    Сообщения:
    401
    Симпатии:
    29
    всё, разобрался.
    Проблема была в том, что я в паттерне, прописал в нижнем регистре, а на сайте в верхнем.
     
  6. deni.pc

    deni.pc

    Регистр.:
    6 сен 2006
    Сообщения:
    201
    Симпатии:
    57
    а ты в паттерне юзай параметр /i и ему будет пофигу в каком регистре.
    например:
    preg_match('/%<table>(.*?)</table>%iUms/i', $content, $ret);
     
  7. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    PHP:
    preg_match('/%<table>(.*?)</table>%iUms/i'$content$ret);

    Вы хоть сами то поняли, что написали?
     
  8. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    189
    Простой парсер на PHPhttp://technosaratov.ru/post/view/91думаю многим еще пригодится.
     
  9. home-work

    home-work Писатель

    Регистр.:
    21 июн 2009
    Сообщения:
    6
    Симпатии:
    0
    то же самое
     
  10. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    замени </table> на <\/table>..
     
Статус темы:
Закрыта.