PHP.Как извлечь данные с сайта

Discussion in 'PHP' started by Moldman, 12 Apr 2009.

  1. Moldman

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

    Joined:
    12 Jun 2007
    Messages:
    91
    Likes Received:
    35
    Reputations:
    -5
    Как извлечь данные которые находятся между двумя конкретными строками,а потом вывести их не нарушив их структуру в HTML?
     
  2. Moldman

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

    Joined:
    12 Jun 2007
    Messages:
    91
    Likes Received:
    35
    Reputations:
    -5
    m0Hze,можно конкретный пример?
     
  3. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    тотже вопрос только что тут задавался
    выложил пример на Perl

    /thread115501.html
     
    _________________________
  4. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    file_get_contents + preg_match_all + print_r (ну или echo)
     
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Moldman, ты просил пример
    я на php не писал подобные парсеры но смысл в чем

    смотри мой пример по ссылке выше
    получаешь контекст сайта или через fsockopen

    PHP:
    <?php
    $fp 
    fsockopen ("www.example.com"80$errno$errstr30);
    if (!
    $fp) {
        echo 
    "$errstr ($errno)<br>\n";
    } else {
        
    fputs ($fp"GET / HTTP/1.0\r\nHost: www.example.com\r\n\r\n");
        while (!
    feof($fp)) {
            echo 
    fgets ($fp,128);

    // тут обработку надо вставить

        
    }
        
    fclose ($fp);
    }
    ?>
    можно и через file
    тебе много функций сказали

    PHP:
    <?php
    // получить web-страницу в виде массива и напечатать его
    $fcontents file ('http://www.example.com/');
    while (list (
    $line_num$line) = each ($fcontents)) {
        echo 
    "<b>Line $line_num:</b>; "htmlspecialchars ($line), "<br>\n";
    }

    // получить web-страницу в строке
    $fcontents implode (''file ('http://www.example.com/'));
    ?>
    вот и в цикле через регулярки построчно парсишь ... опять же функции тебе сказали preg_***

    примеры регулярок и как применяется это смотри в моем приере на perl там это пишется через $s=~/регулярка/ (эквивалент preg_grep)

    Удаче, товаришь!
     
    _________________________
    #5 Gar|k, 12 Apr 2009
    Last edited: 12 Apr 2009