Вопрос
Вопрос касается PHP. Необходимо писать в начало (или середину) файла причем не удаляя содержимого (как бы раздвигая содержимое файла). Приведенный ниже фрагмент не работает :-(
<? $st=fopen("p.txt", "a+"); //открыли для записи
fseek($st,0,SEEK_SET); //устанавливаем указатель на начало файла со смещением 0
fputs($st,"something"); //пишем в файл (по идее в его начало)
fclose($st); //закрыли ?>
В результате все равно запись появляется в конце файла.
Ответ
Дело в том, что Вы открыли файл в режиме для добавления, и если Вы указатель смещаете в 0, то он смещается на нулевую позицию добавления. Т.е. в конец первоначального файла.
Для того, чтобы записать в начало, потребуется загрузить файл в переменную, вывести во вновь созданный файл сначала нужную строку, а потом остальное содержимое, сохраненное в переменной.
Это не ограничение какого-либо языка программирования. Просто таков принцип хранения информации на дисках.
BSP
Дело не в принципе хранения информации на диске. Эта задача вполне разрешима, если заменить строку
$st=fopen('p.txt', 'a+') на $st=fopen('p.txt', 'r+')
SiMM
Copyright 2000-2004 Сообщество Чайников
Контактная информация