Войти

Показать полную графическую версию : Как записать с начала файла??(php)


LEXX2002
28-04-2003, 21:15
У меня опять вопрос по PHP.  НЕ как не  получается вводить записи в начало файла, уже перепробовал многое, пишем типа такое:
$fp=fopen(“file.txt”, r+) – открываем файл для записи от начало файла, здесь все окей, дальше геморой.
Пишем:
$prin=”бла бла бла…”
fputs ($open1, $prin);

закрывая файл, чего получается:
был файл:

chatchatchatchatchat\n
chatchatchat

получаем:

бла бла бла…chat\n
chatchatchat

то есть пишем поверх. Приколы и с \n (ENTER кто не знает), по идеи я думал enter должен опустить все строки на 1, однако нет!! Enter записывается как символ, и получаем

\nhatchatchatchatchat\n
chatchatchat

первый байт заменяется Энтором

пробовал оставлять первую строку пустую, типа так (\0 – пробел):
\0\0\n
chatchatchatchatchat\n
chatchatchat

получаем:
бл\n
а бла бла …chatchat\n
chatchatchat

Если кто знает как сделать нормально, по людски то напишите, может я чего не так делаю, уже вместо fputs и fwrite () пробовал, тот же эффект, может там ещё какая функция есть???

Prisoner
30-04-2003, 02:58
$fp=fopen(“file.txt”, r+)
Пишем:
$prin=”бла бла бла…” и, имхо
fputs ($fp, $prin);

потом, способа писАть С начала файла я не нашел, но могу предложить вариант когда файл открывается как r+ ('r+' - Открыть для чтения и записи; поместить указатель в начало файла), его содержимое копируется во временный массив и потом пишется обратно в ентот файл сначала нужное твоему сердцу "бла бла бла", а потом старое содержимое. Есть вариации на тему, но не шибко отличные от вышеописанного...

glassMonk
30-04-2003, 04:26
Сомый актуальный вопрос начинаюших. В масив не стоит ложить
cur_file - твой фаил
создаеш temp_file
копируеш весь cur_file -> temp_file
потом перезаписуеш cur_file и к ниму дописуеш temp_file
это то что тебе нужно.

LEXX2002
30-04-2003, 19:55
glassMonk
я примерно так и сделал, temp_file у меня не файл а переменная (потому что у меня и так большая нагрузка на сервак, боюсь временные файлы он вообше не потянет ), считываю весь файл $total_says=count($s=(file("chat.txt"))); потом открываю с W, записываю что нужно, потом записываю $s[$raz], получается запись новая в начале файла, только там проблемы с \n, если строчек 20, то на последней строчки будет 20 енторов :down: , видно когда считываешь файл, то и \n считываться, так идет нарастание.

glassMonk
01-05-2003, 05:29
Записывать в файл более безопасней будет, если соеденение разарвется ...
А так как знаеш :)




© OSzone.net 2001-2012