найти в текстовом файле определенную строчку и удалить

Тема в разделе "PHP", создана пользователем Shamanchik, 18 ноя 2011.

Модераторы: latteo
  1. Shamanchik

    Shamanchik Постоялец

    Регистр.:
    20 окт 2011
    Сообщения:
    65
    Симпатии:
    10
    Нужно средствами php найти в текстовом файле определенную строчку и удалить, желательно код не сильно нагружающий сервер, т.к. текстовик очень большой примерно 500к записей
     
  2. Soul :)

    Soul :) Постоялец

    Регистр.:
    22 мар 2007
    Сообщения:
    86
    Симпатии:
    9
    Считываем файл построчно, в каждой строке меняем необходимо строку на другую. Сохраняем эту строку в новый файл (дописываем в конец). По окончании сего действа удаляем файл1 и переименовываем файл2 в файл1
     
  3. dani.

    dani. Создатель

    Регистр.:
    19 сен 2008
    Сообщения:
    33
    Симпатии:
    6
    Если узкое место диск, а памяти, наоборот, хватает или удаляемая строка обычно в конце файла, то лучше редактировать in place.
    fopen mode=r+
    fread+fseek до конца нужной строки
    копируем с этого места до конца файла данные
    fseek на начало нужной строки
    fwrite вставляем скопированный кусок
    ftruncate обрезаем файл на (размер файла - длина удаленной строки)