[php] Просмотр страниц и поиск на них текста

Discussion in 'PHP' started by Diablo, 19 Sep 2008.

  1. Diablo

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

    Joined:
    7 Nov 2005
    Messages:
    132
    Likes Received:
    34
    Reputations:
    12
    Теоретически, скрипт не сложный, но сам я PHP не учил.
    Цель такова: нужно перебирать поочередно страницы вида http://domain.name/dir/xxxxxxx (прибавляя к числу xxxxxxx по единице за цикл) и искать в сорцах определенный текст. Положительные результаты сохранять в файлик. Из параметров требуется только возможность установки интервала между просмотрами, установка начального числа xxxxxxx и конечного.

    Благодарю.
     
  2. MasterMushi

    MasterMushi Member

    Joined:
    19 Dec 2007
    Messages:
    29
    Likes Received:
    5
    Reputations:
    3
    Погоди погоди. Если смотреть через http:// то единственное что ты увидишь так это только HTML. Или тебе нужен именно HTML парсер?
     
  3. Diablo

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

    Joined:
    7 Nov 2005
    Messages:
    132
    Likes Received:
    34
    Reputations:
    12
    Есть много страниц. На некоторых из них (на каких - неизвестно), в сорцах есть некий кусок html-кода. Нужно найти страницы, на которых присутствует этот фрагмент кода.
     
  4. 159932

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    PHP:
    <?
    $beg = ;                # начальный ид
    $en = ;                    # конечный ид
    $tx '';                # что искать
    $sl = ;                    # сколько спать
    $ddd fopen('ddd.txt','a');
    for(
    $i=$beg$i<$en$i++) {
        
    $c file_get_contents('http://domain.name/dir/'.$i);
            if (
    strpos($c,$tx) != falsefwrite($ddd,$i."\r\n");
            else continue;
        
    sleep($sl);
    }
    fclose($ddd);
    ?>
    для этого существует отдельная тема с пхп вопросам :mad:
     
    5 people like this.
  5. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    PHP:
    <?php
    for($i=1;$i<=99999;$i++){
        
    $file=file_get_contents("http://domain.name/dir/$i");
        if(
    strstr($file,"какой то текст для описка")) {
            
    $f=fopen("log.log","a+");
            
    fwrite($f,"пыщ пыщ! мы нашли! нумбер $i\r\n");
            
    fclose($f);
        }
    }
    ?>
    накидал быстренько. не тестил. думаю разберёшся.

    UPD: циферки мну опредили =\
     
    #5 mr.The, 19 Sep 2008
    Last edited: 19 Sep 2008
    3 people like this.
  6. Diablo

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

    Joined:
    7 Nov 2005
    Messages:
    132
    Likes Received:
    34
    Reputations:
    12
    За скрипт спасибо. Сейчас опробую.
    А про ту тему. Думал там вопросы по языку, а не просьбы о написании скриптов...

    UPD: Даже два :) Спасибо.
     
  7. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    mr.The у 159932 правильнее т.к он не открывает каждый раз .. .
     
    1 person likes this.
  8. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Doom123, я ж неспорю. я и неставил себе задачу сделать хороший, оптимизированый скрипт. я просто накидал по быстрому с целью помочь.
     
  9. Diablo

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

    Joined:
    7 Nov 2005
    Messages:
    132
    Likes Received:
    34
    Reputations:
    12
    159932, а слип в секундах?
     
  10. 159932

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    да
     
  11. MasterMushi

    MasterMushi Member

    Joined:
    19 Dec 2007
    Messages:
    29
    Likes Received:
    5
    Reputations:
    3
    нет, слип всегда в тысячных. Нужно для того чтобы сервер не отвалил запросы на файлы с ошибкой отказано в доступе. Лучше всего поставить значение 35. Если сервер с файлами общий и тупой тогда 120

    Хммм точно, по мануалу sleep в секундах. Это плохо. Нужно бы сделать задержку поменьше
    миллисекунд на 35. Иначе пока 10000 файлов пропарсишь, можно напиться и протрезветь.


    Вот что нам надо: void usleep ( int $micro_seconds )

    и обязательно в начале скрипта поставить set_time_limit(0);
    Эта функция уберет ограничение на время исполнения скрипта (в РНР есть ограничение на время работы сервера над скриптом. Минута по умолчанию)
     
    #11 MasterMushi, 19 Sep 2008
    Last edited: 19 Sep 2008
  12. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    Сервер народа ответил то, что такой страницы нет. Введи в адресной строке браузера урл и проверь.
    Сделай так:
    PHP:
    <? 
    $page file_get_contents("http://rw6ase.narod.ru/");
    echo 
    $page;
    ?>
     
    #12 .:nbd:., 20 Sep 2008
    Last edited: 20 Sep 2008
    1 person likes this.
  13. 159932

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    отвечу , как задашь вопрос в теме для этого !!!
    https://forum.antichat.ru/thread40896.html