Linux.by
https://forum.linux.by/

Вопрос по php4: "Запись в файл"
https://forum.linux.by/viewtopic.php?f=6&t=2132
Страница 1 из 1

Автор:  Anonymous [ 27 янв 2004, 18:35 ]
Заголовок сообщения:  Вопрос по php4: "Запись в файл"

Значит так. Есть скрипт который записывает сообщения в текстовый файл.
Но он записывает сообщения сверху вниз.

Вопрос: как подправить код так, что бы сообщения записывались одно над другим (т.е. каждое последующее дописывалось над предыдущим)?

Автор:  Anonymous [ 28 янв 2004, 00:32 ]
Заголовок сообщения: 

Неужели никто php не знает?! вопрос-то ламерский... я еще только начал баловаться. :? Может еще чего надо пояснить :?:

Автор:  invox [ 28 янв 2004, 02:32 ]
Заголовок сообщения: 

Читай документацию.

resource fopen(string $filename, string $mode [, int $use_include_path [, resource $zcontext]])

среди "list of possible modes for fopen() using mode" указан r+ - Open for reading and writing; place the file pointer at the beginning of the file.

Автор:  Anonymous [ 29 янв 2004, 18:18 ]
Заголовок сообщения: 

Вещьдоки почитал, нашел кое чего, но.. r+ спрва обнуляет файл, а потом пишет в него.. с w и w+ ситуация такая же... а как бы без обнуления? или никак? :?

Автор:  Aleksey Kondratenko [ 30 янв 2004, 01:21 ]
Заголовок сообщения: 

Вставить текст в начало файла автоматически не выйдет.
Сделай новый файл. Запиши в него новую запись. Потом
допиши старый. И атомарно через rename замени старый
файл на новый.

П.С. А зачем вставлять данные в начало ?

Автор:  Llama [ 30 янв 2004, 08:49 ]
Заголовок сообщения: 

Может я что-то путаю и работать не будет, но на perl я бв сделал так:


@file = <INFILE>;
@file = ("stroka", @file);
close INFILE;
print OUTFILE, @file;

Смысл надеюсь ясен, как открывать файлы - сам додумаешься.

Автор:  ZAR [ 08 июн 2004, 07:17 ]
Заголовок сообщения: 

Вот лови ->
Все режимы работы с файлами:
r - только чтение.
r+ - чтение и запись, данные записываются в начало файла поверх уже имеющихся там.
w - только запись. Существующее содержимое файла уничтожается. Если файл не существует, то он создается.
w+ - аналогично w, но также возможно чтение файла.
a - только запись, данные дописываются в конец файла, если файл не существует, то он создается.
a+ - аналогично a, но также чтение файла.

Автор:  Andrej Ramaszeuski [ 08 июн 2004, 10:42 ]
Заголовок сообщения: 

Llama писал(а):
Может я что-то путаю и работать не будет, но на perl я бв сделал так:

@file = <INFILE>;
@file = ("stroka", @file);
close INFILE;
print OUTFILE, @file;



Совсем плохо. Если б у меня какой-нибудь юзер так начал чудить - убил бы без предупреждения. И кто вас учил пихать в память целые файлы ради такой глупости? В курсе, каким образом так тривиальный процесс будет жрать память? Файл, совершенно спокойно может быть и несколькогиговый... Жужжим, пердим, наполняем swap и падаем :)

Автор:  Andrej Ramaszeuski [ 08 июн 2004, 10:46 ]
Заголовок сообщения: 

Aleksey Kondratenko писал(а):
П.С. А зачем вставлять данные в начало ?


Перед тем, как научится использовать для хранения данных, которые бы могли быть структурироыванными, базы данных, каждый экспериментирует с текстовыми файлами. Имея при этом большие или меньшие проблемы и изобретая лестничный велосипед там, где где ездит лифт. В начало файла вставляется запись при написании первого guestbook, чтобы последние записи были наверху :) Могу поспорить на литр пива, что пишется кусок html :)

Hello world!

Автор:  Anonymous [ 19 июн 2004, 21:31 ]
Заголовок сообщения: 

user писал(а):
Вещьдоки почитал, нашел кое чего, но.. r+ спрва обнуляет файл, а потом пишет в него.. с w и w+ ситуация такая же... а как бы без обнуления? или никак? :?



Возможно я чего-то недопонял, но по-моему, речь идет о дозаписи тектста в конец файла.
Просто открываешь его с ключом a+. Содержимое не стирается, информация доьбавляется в конец.

Автор:  poligraph [ 19 июн 2004, 22:02 ]
Заголовок сообщения: 

Andrej Ramaszeuski писал(а):
Aleksey Kondratenko писал(а):
П.С. А зачем вставлять данные в начало ?


Перед тем, как научится использовать для хранения данных, которые бы могли быть структурироыванными, базы данных, каждый экспериментирует с текстовыми файлами. Имея при этом большие или меньшие проблемы и изобретая лестничный велосипед там, где где ездит лифт. В начало файла вставляется запись при написании первого guestbook, чтобы последние записи были наверху :) Могу поспорить на литр пива, что пишется кусок html :)

Hello world!


Да, действительно! Пользуйтесь БД!!!!

Автор:  Anonymous [ 20 июн 2004, 14:48 ]
Заголовок сообщения: 

Даже удивляюсь уважаемые, что вы решили поднять эту тему :D. С тех пор я уже даже успел полюбить Perl :D

Andrej Ramaszeuski,
Да, ты абсолютно прав, это были мои попытки сделать гостевую/ее_подобие так, что бы новые сообщения дописывались сверху :)

Dr.Gigabit,
Просто внимательнее перечитай первый пост ;)

poligraph,
>> Да, действительно! Пользуйтесь БД!!!!
К великому сожалению человек пишущий на PHP "Хеллоу ворлд", еще не на столько крут, что бы использовать БД :roll:

ps С Режимами работы с файлами я уже давно поковырялся -- того что нужно среди них нет.
pps Надо пробовать ковырять mySQL попутно что ли :drink: :)

Автор:  poligraph [ 21 июн 2004, 14:53 ]
Заголовок сообщения: 

user, дык ANSI SQL же совсем простой!!!

Автор:  Anonymous [ 05 июл 2004, 00:17 ]
Заголовок сообщения: 

user писал(а):
Dr.Gigabit,
Просто внимательнее перечитай первый пост ;)


Задача не самая тривиальная, и при написания гостевухи от файлов лучше отказаться на мой взгляд. Ибо встает вопрос о совместном доступе:)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/