Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как записать с начала файла??(php) (http://forum.oszone.net/showthread.php?t=29603)

LEXX2002 28-04-2003 21:15 204875

У меня опять вопрос по 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 204876

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

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

glassMonk 30-04-2003 04:26 204877

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

LEXX2002 30-04-2003 19:55 204878

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

glassMonk 01-05-2003 05:29 204879

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


Время: 02:08.

Время: 02:08.
© OSzone.net 2001-