Forum Webscript.Ru

Программирование => PHP => Тема начата: agressor от 14 Февраля 2003, 18:42:23

Название: Строки
Отправлено: agressor от 14 Февраля 2003, 18:42:23
Вот какой вопрос:
есть ли в пхп функции вроде удаления определенной строки из файла, замещения ее какой-нибудь другой строкой и т.д.
А то написал я скрипт форума (без MySQL), все бы ничего, но теперь хочу, чтобы с добавлением нового сообщения в тему она в списке всех тем поднималась на самый верх (как во всех приличных форумах:)), то есть удалялась из своего исходного места в файле и вписывалась в самый его конец...
Как это люди делают?
Название: Строки
Отправлено: AliMamed от 14 Февраля 2003, 18:48:28
читаешь файл в массив и циклом
Название: Строки
Отправлено: Меняздесьдавнонет от 14 Февраля 2003, 23:20:46
таких функций нет.
есть стандартные функции работы с файлом.
чтение, запись, блокировка.
Название: Строки
Отправлено: agressor от 15 Февраля 2003, 08:22:03
тогда как сделать, чтобы в цикле он как бы стер строку, это что fwrite ($open, "")???
Название: Строки
Отправлено: AliMamed от 15 Февраля 2003, 11:40:36
читаешь файл в массив и циклом собираешь новый массив без строки, которую надо удалить.
новый массив записываешь в файл
Название: Строки
Отправлено: Меняздесьдавнонет от 15 Февраля 2003, 13:20:27
agressor
в файловой системе НЕТ такого понятия, как строка.
стандартными стредствами можно прочитать кусок файла.
Определенное количество байт по определенному смещению.
Записать можно тоже - только по определенному смещению.
удалить куок файла "из середины"- нельзя. можно только по определенному смещению и до конца.

поэтому тебе надо прочесть в массив.
с массивом сделать все необходимые операции.
собрать массив обратно в строку (implode)
открыть файл на запись.
записать строку.

понятно?

вообще я бы на твоем месте не парился с такими вещами без базы. запаришься.

а еще я бы на твоем месте, прежде, чем что-то писать, почитал бы сайты для начинающих.
чтобы уяснить себе именно эти азы работы с файлами.
Название: Строки
Отправлено: agressor от 16 Февраля 2003, 17:19:21
Нет... Файловую систему я более или менее освоил, но думаю, если есть такие функции, как перевод курсора в конец, начало...
Ну да ладно... Я уже ровно шесть раз пробовал все переделывать, нихрена не работает или работает только наполовину:(
Не могли бы вы написать маленький примерчик: есть файл, в нем много строк, состоящих из значение:::номер, ну и вот, если номер совпадает с переменной $tema, то такая строка "удаляется" и вписыватся в конец файла... и все... вроде просто... но не получается, не судите строго...
Название: Строки
Отправлено: Меняздесьдавнонет от 16 Февраля 2003, 20:41:06
такие функции есть.
но понятие "строка" существует только для тебя. и еще для текстового редактора.
с точки зрения файловой системы все симолы равноправны, и символ с кодом 13 ничем не лучше остальных.
ты можешь перемещать "курсор" по абсолютным позициям.
и при чем здесь строки, длину которых ты не знаешь?

Сказали тебе.
СЧИТЫВАЕШЬ ВЕСЬ ФАЙЛ.
производишь над переменной манипуляции.
записываешь файл целиком обратно.
Какие тут еще курсоры?

Хотя я предпочитаю не давать готовенькое, а чтобы человек давал код, и уже в нем указать на ошибки, но сейчас я насчет примера я могу тебе помочь.
Тут недавно один товарищ как раз похожим интересовался...

Остальные - тоже сходите. Это забавно ;-)
http://www.russian-traders.com/forum/forumdisplay.php3?forumid=11
Название: Строки
Отправлено: agressor от 19 Февраля 2003, 19:17:21
Спасибо, все работает :)