как изменить/удалить строку в файле?

musicant

Новичок
как изменить/удалить строку в файле?

Помогите разобраться.

Считал файл в массив, вывел содержимое строки в форму и изменил это содержимое.
Как сохранить измененную строку в файл на место прежней?
Пробовал substr_replace ( ) ...может не так пробовал...но никаких изменений не произошло.
str_replace ( ) тоже самое.

И еще, какой функцией можно удалить строку из файла?

Спасибо.
 

netmac

Новичок
Если я не ошибаюсь - Никакой. Можно считать весь файл, изменить, а потом весь его записать.

могу ошибаться. сам когда-то давно это делал. остановился на таком варианте.
 

kyzma

Новичок
1.заносим файл в массив через file()
2.удаляем нужный элемент(строчку) массива
3.перезаписываем файл
 

yaniks

новичок
> Если я не ошибаюсь - Никакой. Можно считать весь файл, изменить, а потом весь его записать.

если длинна переписываемого блока равна длинне записываемого, то можно (применил на днях, изменял телефонные коды)
 

netmac

Новичок
Как? Напиши пожалуйста.
Я тоже думал об этом, но пробовать не пробовал, поэтому и писал что могу ошибаться.
 

Фанат

oncle terrible
Команда форума
[m]fseek[/m]/[m]fwrite[/m]
и подвязывайте тут с оффтопиком.
если будут ещё вопросы - создай свою тему.
 

musicant

Новичок
Снова обращаюсь за помощью.

Исходя из мануала:

fseek($fp,0,SEEK_CUR); - должен установить
смещение на текущую позицию.

Но, если в след строке записать:

fwrite($fp,$string);

$string будет записан, но больше в файле ничего не останется.

Направьте на путь, а дальше я сам буду голову ломать.

P.s
Для чего это делается:

На дисплей считываются все строки из файла, каждая отображается в своей форме (<form>).
Под каждой формой кнопки "Удалить" и "изменить".
Вот про принцип действия "Изменить" я и спрашиваю.Все строки разной длинны, и перезаписываемая может быть не равна длинне исходной.
 

Фанат

oncle terrible
Команда форума
ты форум читать умеешь?
отличить кто кому пишет в состоянии?
если нет, то бросай пхп, учись читать сначала
 
Сверху