За последние 24 часа нас посетили 16388 программистов и 1678 роботов. Сейчас ищут 932 программиста ...

Найти элемент в файле и вывести строку в которой он есть

Тема в разделе "PHP для новичков", создана пользователем programer, 6 авг 2009.

  1. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Дано:
    Код (Text):
    1. <a href="http://www.site.ru/животные/слоны/">С хоботами</a>
    2. <a href="http://www.site.ru/книги/художественные/">Для души</a>
    3. <a href="http://www.site.ru/эмоции/радость/">Веселись</a>
    Нужно:
    1) найти строку в которой содержится слово "радость"
    2) вывести эту строку целиком
     
  2. Yadfewm

    Yadfewm Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    223
    Симпатии:
    0
    если это в файле то читаем построчно file
    если это текстовая переменная делаем extract по /n (перевод каретки - энтер...)
    после чего if(strpos()!== ) если нашли - выводим - что то вроде того?
     
  3. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Я получил:
    Код (Text):
    1. Array
    2. (
    3.     [0] => <a href="http://www.site.ru/животные/слоны/">С хоботами</a>
    4.     [1] => <a href="http://www.site.ru/книги/художественные/">Для души</a>
    5.     [2] => <a href="http://www.site.ru/эмоции/радость/">Веселись</a>
    6. )
    А что делать дальше, не знаю...
     
  4. alexy

    alexy Активный пользователь

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    PHP:
    1.  
    2. <?php
    3.  
    4.     $arr = file('text.txt');
    5.    
    6.     foreach ( $arr as $k=>$v )
    7.     {
    8.         if ( strpos($v,'радость',0) !==false )
    9.         {
    10.             echo $k.'-'.$v;
    11.         }
    12.     }
    13.    
    14. ?>
    15.  
    выведет номер строки и саму строку, в которой встречается подстрока "радость"
     
  5. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    alexy, огромное СПАСИБО!
    Работает!!!
     
  6. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Есть более быстрый вариант.
    PHP:
    1. $text = file_get_contents( 'myfile.txt');
    2. $text2 = explode('радость', $text);
    3. echo (substr_count( $text2[0], "\n") + 1);
     
  7. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Я использую такой:

    PHP:
    1.  
    2.   <?php
    3.  
    4.     $arr = file('text.txt');
    5.      
    6.     foreach ( $arr as $v )
    7.     {
    8.         if ( strpos($v,'радость',0) !==false )
    9.         {
    10.             $string = $v; // найденная строка с "радостью"
    11.         }
    12.     }
    13.      
    14. ?>
    15.