Проблема парсинга в php

Discussion in 'PHP' started by IgrikX, 28 Jan 2011.

  1. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    нужно вообщем спарсить блок текста включая перевод строк, тэги, каким образом написать эту регулярку пробывал
    PHP:
    /<body>(.*)</body>/si
    получается. Но когда применяю регулярку внитри страницы, то ничего не выводит. Чего делать?
     
  2. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    PHP:
    #<body>(.*?)</body>#
     
    #2 banned, 28 Jan 2011
    Last edited: 28 Jan 2011
  3. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    не работает

    PHP:
    preg_match("#<tr><td colspan=3><a name=\"director\"><\/td><\/tr>(.*?)<tr><td colspan=3><a name=\"actor\"><\/td><\/tr>#"$this->awards$result);
    кусок кода страницы

    PHP:
                    <tr><td colspan=3><br /><br /></td></tr>
                    [
    B]<tr><td colspan=3><a name="director"></td></tr>[/B]
    <
    tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Режиссеры</td></tr>
    <
    tr><td colspan=3><br /></td></tr>
    </
    table>
    <
    div class="dub">
       <
    i>1.</i>
       <
    a href="/level/4/people/27977/"><img src="http://st.kinopoisk.ru/images/sm_actor/27977.jpg" alt="Джеймс Кэмерон (James Cameron)" /></a>
       <
    p><a href="/level/4/people/27977/">Джеймс Кэмерон</a><b>James Cameron</b>... </p>
    </
    div>

    <
    table cellspacing=0 cellpadding=0 width=100border=0>
    <
    tr><td colspan=3><br /></td></tr>
    <
    tr><td colspan=3 style="border-top:1px solid #ccc"><br /></td></tr>
    <
    tr><td colspan=3 style="padding-left:20px"><img src="http://st.kinopoisk.ru/images/arrow-top2.gif" width=17 height=8><a href="#top" class="continue">Наверх страницы</a><br><br>&nbsp;</td></tr>
    [
    B]<tr><td colspan=3><a name="actor"></td></tr>[/B]
    <
    tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Актеры</td></tr>
    <
    tr><td colspan=3><br /></td></tr>
     
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    А причем здесь первый код?

    PHP:
    <?php
        $a 
    =  '<tr><td colspan=3><br /><br /></td></tr>
                    [B]<tr><td colspan=3><a name="director"></td></tr>[/B]
    <tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Режиссеры</td></tr>
    <tr><td colspan=3><br /></td></tr>
    </table>
    <div class="dub">
       <i>1.</i>
       <a href="/level/4/people/27977/"><img src="http://st.kinopoisk.ru/images/sm_actor/27977.jpg" alt="Джеймс Кэмерон (James Cameron)" /></a>
       <p><a href="/level/4/people/27977/">Джеймс Кэмерон</a><b>James Cameron</b>... </p>
    </div>

    <table cellspacing=0 cellpadding=0 width=100% border=0>
    <tr><td colspan=3><br /></td></tr>
    <tr><td colspan=3 style="border-top:1px solid #ccc"><br /></td></tr>
    <tr><td colspan=3 style="padding-left:20px"><img src="http://st.kinopoisk.ru/images/arrow-top2.gif" width=17 height=8><a href="#top" class="continue">Наверх страницы</a><br><br>&nbsp;</td></tr>
    [B]<tr><td colspan=3><a name="actor"></td></tr>[/B]
    <tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Актеры</td></tr>
    <tr><td colspan=3><br /></td></tr>'
    ;

        
    preg_match("#<tr><td colspan=3><a name=\"director\"></td></tr>(.*?)<tr><td colspan=3><a name=\"actor\"></td></tr>#s"$a$result);
        
        
    var_dump($result[1]);
    Что тебе надо получить из этого куска?
     
  5. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    содержимое между этими метками
    PHP:
    [B]<tr><td colspan=3><a name="director"></td></tr>[/B]
    ...
    [
    B]<tr><td colspan=3><a name="actor"></td></tr>[/B]
    /
    PHP

    там просто задача такаячто бы получить текст между двумя меткамиа потом уже вот этот текст парсить
     
  6. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
  7. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    тренируюсь и не получается ничего(
     
  8. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    полулось))
     
  9. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    короче херня, применяя такую регулярку #director(.|\n|\r|\t)*actor# к куску текста, пашет, в проге уже не пашет
     
  10. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    актуально, не получается
     
  11. k1113r

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

    Joined:
    20 Dec 2007
    Messages:
    23
    Likes Received:
    27
    Reputations:
    0
    Решал подобную задачу создавая для каждой регулярки шаблон.
    $result="страница";

    $sh1="#<a name=\"director\">(*.?)</td></tr>#si";
    #sh2="<a name=\"actor\">(*.?)</td></tr>#si";


    preg_match($sh1,$result,$mar);
    $r1=preg_replace("#<a name=\"director\">(*+?)</td></tr>#si","$1",$mar[1]);

    проблема решалась на ура

    если шаблонов много, то там уже можно загонять в массив.
     
  12. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Я же дал правильную регулярку в 4м посте.
     
  13. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    всё, спасибо)) тупил из-за своей невнимательности) парсил другую страницу, а смотрел другую=)
     
  14. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    Перепилил этот сервис немножко под себя, мб кому будет интересно
    http://cp1251.darkoff.ru/regexp/