| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > fopen |
| Автор: m1kle 4.5.2008, 19:05 |
| Вообщем хочу написать что-то в начало файла. Но почему то он обрезает всё что было в конце файла. Я использую режим r+. |
| Автор: Feldmarschall 4.5.2008, 19:17 |
| "вообще" пишется без "м" на конце, а "в общем" - раздельно. Постарайся запомнить. Ты уверен что хочешь перезаписать что-то в начале файла? |
| Автор: m1kle 4.5.2008, 19:23 | ||
| Feldmarschall, учить русскому языку меня не стоит. Я хочу записать строчку в начало файла.
- вот например файл. |
| Автор: Feldmarschall 4.5.2008, 20:24 |
| что-то мне уже надоело повторяться. вы бы хоть кооперировались с одинаковым нубскими вопросами. дописать ничего в файл нельзя. можно только переписать. поэтому читаешь весь файл, пишешь свою переменную и потом файл обратно |
| Автор: m1kle 4.5.2008, 20:26 |
| Feldmarschall, Я и не говорил "Дописать". Ты меня не понял. Мне нужно записать что-то в начало файла, не повредив при этом остальной текст. А у меня при записи в начало файла весь текст, который "ниже" удаляется, хотя я использую режим r+, который окрывает файл для чтения и записи; помещяет указатель в начало файла. |
| Автор: Feldmarschall 4.5.2008, 20:29 |
| Это ты меня не понял. "записать, не повредив" - это и значит дописать, а поместив указатель в начало файла, можно только перезаписать. поверх того, что раньше было в начале файла. ясно? |
| Автор: m1kle 4.5.2008, 20:32 |
| Feldmarschall, Тогда другой вопрос. Чем тогда 'w+' Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать. отличается от 'r+' Окрывает файл для чтения и записи; помещяет указатель в начало файла. ? |
| Автор: Sufius 4.5.2008, 20:33 |
| m1kle, считываешь старый файл, добавляешь к этой инфе новую, заново записываешь в файл... |
| Автор: m1kle 4.5.2008, 20:34 |
| Sufius, понял. Спасибо. |
| Автор: Sufius 4.5.2008, 20:35 |
| http://ru2.php.net/fopen w+ - хотя бы Если файл не существует - пробует его создать. |
| Автор: m1kle 4.5.2008, 23:30 |
| Спасибо за помощь, всё работает |
| Автор: win9x 9.6.2008, 17:00 | ||||||
Лично я все же нашел для себя способ не переписывать, а дописывать в файл, используя флаг a , который устанавливает указатель в конец файла.
Полученный результат открываю , как массив rsort(file($dbfile)) и обрабатываю тем же оператором for , только в обратном порядке, т.е. в порядке течения событий.
Иногда rsort() пашет некоректно, тогда:
Ни на чем не настаиваю, но для меня этот способ работает отменно. |