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

Shamanchik

Постоялец
Регистрация
19 Окт 2011
Сообщения
65
Реакции
10
Нужно средствами php найти в текстовом файле определенную строчку и удалить, желательно код не сильно нагружающий сервер, т.к. текстовик очень большой примерно 500к записей
 
Считываем файл построчно, в каждой строке меняем необходимо строку на другую. Сохраняем эту строку в новый файл (дописываем в конец). По окончании сего действа удаляем файл1 и переименовываем файл2 в файл1
 
Если узкое место диск, а памяти, наоборот, хватает или удаляемая строка обычно в конце файла, то лучше редактировать in place.
fopen mode=r+
fread+fseek до конца нужной строки
копируем с этого места до конца файла данные
fseek на начало нужной строки
fwrite вставляем скопированный кусок
ftruncate обрезаем файл на (размер файла - длина удаленной строки)
 
Назад
Сверху