Это несложно сделать на php?

Discussion in 'PHP' started by Derec, 12 Oct 2010.

  1. Derec

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

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Сделал запрос на получение контента страницы:

    PHP:
    <?php  

    $url 
    "http://www.site.com/reiting-all/";  
    $content file_get_contents($url);
    preg_match_all("#<b>(.*?)</b>#is",$content,$log);
    file_put_contents("save.txt",implode("",$log[1])); 
    }  
    ?>
    Как можно пропарсить содержимое такого вида (прокрутить в право :) ):

    Code:
      <table width="550" cellspacing="0" align="right" id="reiting_first" style="display:none;"> 
              <tr><td width="70" align="center"><b class="small red">Position</b></td><td width="180"><b class="small red">Nick</b></td><td width="70"><b class="small red">Level</b></td><td width="140"><b class="small red">guild</b></td><td width="60"><b class="small red">Сервер</b></td></tr> 
              <tr><td colspan="5" class="divider2"></td></tr> 
              
              <tr><td class="small dgray" align="center">1</td><td><b class="small black">[COLOR=Yellow]Player1[/COLOR]</b></td><td class="small dgray">[COLOR=Yellow]1[/COLOR]</td><td class="small dgray">rigth</td><td class="small dgray">server1</td></tr> 
              <tr><td colspan="5" class="divider"></td></tr> 
     
              <tr><td class="small dgray" align="center">2</td><td><b class="small black">[COLOR=Yellow]Player2[/COLOR]</b></td><td class="small dgray">[COLOR=Yellow]2[/COLOR]</td><td class="small dgray">left</td><td class="small dgray">server2</td></tr> 
              <tr><td colspan="5" class="divider"></td></tr> 
    Нужно как-то вытащить :
    Player1 - 1
    Player2 - 2
    Записать в файл :rolleyes:
     
    #1 Derec, 12 Oct 2010
    Last edited: 12 Oct 2010
  2. ReduKToR

    ReduKToR Active Member

    Joined:
    5 Jan 2009
    Messages:
    257
    Likes Received:
    179
    Reputations:
    4
    Потому что регулярное выражение не правильное)
     
  3. Derec

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

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Поделитесь секретом, как будет правильно? :rolleyes:
     
  4. v00d

    v00d Member

    Joined:
    11 Oct 2010
    Messages:
    34
    Likes Received:
    10
    Reputations:
    7
    Проще всего сделать так:
    -------------------------
    PHP:
    $url "http://www.site.com/reiting-all/"
    $content file_get_contents($url); # твой запрос с контентом
    preg_match_all("/<\/td><td><b\sclass=\"small\sblack\">(.*?)<\/b><\/td><td\sclass=\"small dgray\">(.*?)<\/td>/ims",$content,$log,PREG_SET_ORDER); # твой парсинг с результатом
    foreach($log as $v)
        @
    $save .= "$v[1] - $v[2]\n";
    file_put_contents("save.txt",$save); # запись результата в файл
     
    1 person likes this.
  5. Derec

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

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Спасибо, за отклик! :) Все работает теперь!!!

    Еще вопросик: как сделать, чтобы этот парсинг выполнялся скажем 1 раз в день? То есть 1 раз в день будет обновляться файл save.txt? :rolleyes:
     
    #5 Derec, 12 Oct 2010
    Last edited: 12 Oct 2010
  6. v00d

    v00d Member

    Joined:
    11 Oct 2010
    Messages:
    34
    Likes Received:
    10
    Reputations:
    7
    юзай cron
     
  7. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Исправь на "Пару часов назад в соседней теме мне сделали"

    надо было там и продолжать писать ;)
     
  8. Derec

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

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Спасибо, разобрался!

    Извиняюсь, если что не так.

    Тему можно закрывать :)
     
    1 person likes this.
  9. llexus

    llexus Member

    Joined:
    19 Sep 2010
    Messages:
    57
    Likes Received:
    6
    Reputations:
    10
    https://forum.antichat.ru/thread235010.html знакомые всё строчки

    Каккак? как и в первом случае. одну строчку всего подправить