поиск строки в файле

Discussion in 'PHP' started by Student :), 5 Dec 2013.

  1. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    Привет. Друзья!!
    У меня проблема
    Как из файла вида

    Строка1
    Строка2
    Строка3
    Строка4


    Создать функцию на рнр.
    Найти и удалить
    Строка3

    И сохранить переделанный файл
     
  2. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    800
    Likes Received:
    145
    Reputations:
    73
    http://php.net/manual/ru/function.file-get-contents.php
    http://php.net/manual/ru/function.str-replace.php
    http://php.net/manual/ru/function.file-put-contents.php
     
  3. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    я вот написал функцию

    PHP:
    $str0=file("m.txt");
    $str0 array_map("trim",$str0);
    $poisk='Строка3';
    $key array_search($poisk$str0); 
    if(
    $key !== FALSE
    unset(
    $str0[$key]); 
    /////Запись в файл
    $result=implode("\n",$str0);
    $file=fopen("m.txt","w");
    fwrite($file,$result);
    fclose($file);
    но функция добавляет лишние переводы строки (
     
  4. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    спасибо щас затестим
     
  5. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    как то так
    PHP:
    <?PHP
        $str_to_find 
    "Строка3";
        
    $file_name "my_file.txt";
        
    $lines file($file_name);
        
    $file fopen($file_name"w");
        for (
    $i=0$i<count($lines); $i++)
            if (
    trim($lines[$i]) != $str_to_find)
                
    fwrite($file$lines[$i]);
        
    fclose($file);
    ?>
     
  6. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    в том коде были ошибки, сейчас исправил. смотри предыдущий пост.
     
  7. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    затестим
     
  8. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    считывай файл построчно а не как советуют все грузить в массив, иначе ОЗУ не хватит.
    http://php.net/manual/ru/function.fgets.php
     
    _________________________
  9. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    ну это да, просто я писал код исходя из того, что было написано самим тс, а у него тоже использовался массив, потому я и решил, что файл не слишком большой :)
     
  10. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    РАБОТАЕТ!!! Зашибись )
     
  11. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    у меня вообщето файл примерно 100 к