|
|
|
| Почему не удается установить файловый указатель в начало?
<?php
# Название файла
$filename = 'test.txt';
# Получаем дескриптор
$fd = fopen($filename, 'a+');
if (!$fd) die('Файл '.$filename.' открыть не удалось');
# Устанавливаем файловый указатель в начало
rewind($fd);
# Записываем новую строку
fwrite($fd, 'Текущее время: '.date('H:i:s')." \r\n");
# Закрываем файл
fclose($fd);
?>
|
| |
|
|
|
|
|
|
|
для: Ванек2010
(04.03.2012 в 10:48)
| | Лучше отказаться от режима "a" в пользу режима "w". | |
|
|
|
|
|
|
|
для: cheops
(04.03.2012 в 14:16)
| | w очищает файл, мне подходит только a+, с такими параметрами
чтение - да,
запись - да,
очистка - нет,
создать если нету - да,
ошибка если есть -нет | |
|
|
|
|
|
|
|
для: Ванек2010
(04.03.2012 в 14:42)
| | Так что? Поможет кто разобраться, почему в книге одно написано, а на деле другое выходит.
Еще заметил, в книге написано, что режим r и r+ не должны очищать файл, но он его очищает. | |
|
|
|
|
|
|
|
для: Ванек2010
(04.03.2012 в 16:56)
| | посмотрите тему http://softtime.ru/forum/read.php?id_forum=1&id_theme=44056
у вас все на локалке крутится или на хостинге у дяди? | |
|
|
|
|
|
|
|
для: Valick
(04.03.2012 в 17:02)
| | На локалке все. Права на запись есть, записывает. | |
|
|
|
|
|
|
|
для: Ванек2010
(04.03.2012 в 17:08)
| | должно все работать и так как сказано в книге
и не забывайте про блокировки, раз уж решились на работу с файлами | |
|
|
|
|
|
|
|
для: Valick
(04.03.2012 в 17:11)
| | Эм что за блокировки? Не работает. Надеюсь на хосте такого не будет, но надо бы на локалке протестить | |
|
|
|
|
|
|
|
для: Ванек2010
(04.03.2012 в 22:03)
| | вы по ссылке ходили? там код с комментариями | |
|
|
|
|
|
|
|
для: Valick
(04.03.2012 в 22:05)
| | Не помогло! У кого мысли есть по решению | |
|
|
|
|
|
|
|
для: Ванек2010
(13.03.2012 в 23:40)
| | у вас Денвер? | |
|
|
|
|
|
|
|
для: Valick
(13.03.2012 в 23:54)
| | VDS | |
|
|
|
|
|
|
|
для: Ванек2010
(13.03.2012 в 23:40)
| | как вариант - считать содержимое в массив, потом открыть в режиме w, вписать сначала строку, а потом и содержимое массива | |
|
|
|
|
|
|
|
для: Ванек2010
(13.03.2012 в 23:40)
| | лови
<?php
$filename = 'test.txt';
$cont=file($filename); // считываем содержимое в массив
for($i=0; $i < count($cont); $i++)
$f=fopen($filename,"w"); // открываем файл на ПЕРЕЗАПИСЬ
flock($f,LOCK_EX); // Говорим, что дальше будем работать только мы
fputs($f,'Текущее время: '.date('H:i:s')." \r\n"); // вносим данные
fflush($f); // Сбрасываем файловый буфер
flock($f,LOCK_UN); // Отключаемся от блокировки
fclose($f); // Закрываем файл
$f=fopen($filename,"a+"); // открываем на дозапись (в конец файла)
flock($f,LOCK_EX);
for($i=0; $i < count($cont); $i++) // вносим все данные, которые были ранее
fputs($f,$cont[$i]);
fflush($f);
flock($f,LOCK_UN);
fclose($f);
?>
|
| |
|
|
|
|
|
|
|
для: Jackson
(14.03.2012 в 00:16)
| | Режим W не подходит, т.к. он затерает уже имеющийся.
Странно, почему в этой книге http://www.softtime.ru/php5/?id_article=117 не сказано, о том, что функцию rewind() нельзя будет применить к режиму a
И возможно ли добавлять новую строку в начало блокнота, но с помощью другой функции? | |
|
|
|
|
|
|
|
для: Ванек2010
(14.03.2012 в 01:24)
| | в предыдущем посте глупость написал - там пятую строчку (обход цыкла for'ом, это было для других целей) удалить надо
в книге должно написано быть про режим "а" - что данные записываются в конец файла
и я ничего умнее не придумал как вставлять строку в начало файла :) может еще кто что скажет | |
|
|
|
|
|
|
|
для: Ванек2010
(04.03.2012 в 16:56)
| | а режим "а" изначально определен для записи в КОНЕЦ файла, независимо от положения курсора | |
|
|
|