Парсин страниц с нужным текстом

Тема в разделе "Как сделать...", создана пользователем anfriska, 5 мар 2015.

Статус темы:
Закрыта.
  1. anfriska

    anfriska Постоялец

    Регистр.:
    3 окт 2013
    Сообщения:
    111
    Симпатии:
    31
    Здравствуйте!
    Принцип такой:
    PHP:
    $uid 1;  // айди страницы
    $text мой текст// текст который ищем на странице

    //получаем содержимое страницы
    $contents file_get_contehts('http://site/user'.$uid.');
    Если $text найден на странице, то запишем в site.txt адрес страницы. Иначе, переходим к следующей странице.

    Да, php еще не начала изучать,
    $uid = 1; - число увеличивается на + 1
    Как это прописать, я тоже не знаю.

    Подскажите как правильно написать код скрипта?
     
    Последнее редактирование модератором: 4 апр 2015
  2. rebux

    rebux Создатель

    Регистр.:
    3 ноя 2011
    Сообщения:
    10
    Симпатии:
    4
    Уверен что этот код будет верным решением?
    PHP:
    <?php

    set_time_limit
    (0);
    ini_set('max_execution_time',0);

    $uid=1;
    $limit=100500;
    $text='#мой текст#';

    while(
    1=1) {
      
    $buf=file_get_contents('http://site.ru/user'.$uid);
      if(!
    preg_match_all($text,$buf,$matchs))
      {
        
    $uid++;
        continue;
      }
      
    $fp=fopen('./user'.$uid.'.html','w+');
      
    fputs($fp,$buf);
      
    fclose($fp);
      
    $uid++;
      if(
    $uid>$limit) break;
    }

    ?>
     
  3. anfriska

    anfriska Постоялец

    Регистр.:
    3 окт 2013
    Сообщения:
    111
    Симпатии:
    31
    Parse error: syntax error, unexpected '=' in ...../club.php on line 10

    Код:
    <?php
    
    set_time_limit(0);
    ini_set('max_execution_time',0);
    
    $uid=1;
    $limit=100500;
    $text='#Поздравления#';
    
    while(1=1) {  // - на эту строку жалуется
      $buf=file_get_contents('http://pikabu.ru/profile/user'.$uid);
      if(!preg_match_all($text,$buf,$matchs))
      {
        $uid++;
        continue;
      }
      $fp=fopen('./user'.$uid.'.html','w+');
      fputs($fp,$buf);
      fclose($fp);
      $uid++;
      if($uid>$limit) break;
    }
    
    ?>
     
  4. rebux

    rebux Создатель

    Регистр.:
    3 ноя 2011
    Сообщения:
    10
    Симпатии:
    4
    тогда вместо while(1=1) заменить на for($uid=1;$uid>$limit;$uid++)
    PHP:
    <?php

    set_time_limit
    (0);
    ini_set('max_execution_time',0);

    $uid=1;
    $limit=100500;
    $text='#мой текст#';

    for(
    $uid=1;$uid>$limit;$uid++)
    {
      
    $buf=file_get_contents('http://site.ru/user'.$uid);
      if(!
    preg_match_all($text,$buf,$matchs)) continue;
      
    $fp=fopen('./user'.$uid.'.html','w+');
      
    fputs($fp,$buf);
      
    fclose($fp);
    }

    ?>
     
    Последнее редактирование: 5 мар 2015
    latteo и anfriska нравится это.
  5. MATRIX41

    MATRIX41 Писатель

    Регистр.:
    26 сен 2013
    Сообщения:
    2
    Симпатии:
    0
    Можно проще: while(true){...}
     
Статус темы:
Закрыта.