Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как дописать в файл
 
 автор: Костян   (25.08.2009 в 21:12)   письмо автору
 
 

Есть файл test.php. В него на расстоянии 30 символов от конца его нужно дописать текст "12345". Весь вечер бьюсь, не могу разобраться. Заранее благодарен.

  Ответить  
 
 автор: Trianon   (25.08.2009 в 21:14)   письмо автору
 
   для: Костян   (25.08.2009 в 21:12)
 

не надо писать в php-файл. Это плохая идея.

  Ответить  
 
 автор: Костян   (26.08.2009 в 06:18)   письмо автору
 
   для: Trianon   (25.08.2009 в 21:14)
 

Я не собираюсь использовать это на сервере хостера. Это все будет на локальном компе. Просто решил немного автоматизировать создание карты сайта. Если бы нужно было дописать в самый конец -проблем бы не было. Это у меня уже получилось, но в этом файле есть закрывающие теги </body>, </html>, и дописать нужно до них. Вот, собственно, и вся проблема.

  Ответить  
 
 автор: Вот случайно зашел   (25.08.2009 в 21:17)   письмо автору
 
   для: Костян   (25.08.2009 в 21:12)
 

fopen() fseek() filesize() fwrite() fclose()

  Ответить  
 
 автор: Костян   (25.08.2009 в 21:21)   письмо автору
 
   для: Вот случайно зашел   (25.08.2009 в 21:17)
 

как именно нужно использовать fileseek(). на примере, если можно

  Ответить  
 
 автор: Вот случайно зашел   (25.08.2009 в 21:25)   письмо автору
 
   для: Костян   (25.08.2009 в 21:21)
 

php.su, php.ru, php.net - примеры, документация и еще много чего...

fseek(дескриптор_открытого_файла, количество_байт_или_же_символов) - перемещяем указатель на определенное количество.

  Ответить  
 
 автор: Костян   (25.08.2009 в 21:29)   письмо автору
 
   для: Вот случайно зашел   (25.08.2009 в 21:25)
 

А нужно приравнивать переменной? И как указать, чтобы отсчет был с конца файла?

  Ответить  
 
 автор: heed   (25.08.2009 в 21:36)   письмо автору
 
   для: Костян   (25.08.2009 в 21:21)
 

>дописать текст "12345"

в каком смысле дописать ?
заменить 5 байт начиная с нужной позиции
, или перезаписать часть файла добавив эти 5 байт в начало изменяемой части ?

  Ответить  
 
 автор: Костян   (26.08.2009 в 06:14)   письмо автору
 
   для: heed   (25.08.2009 в 21:36)
 

нужно дописать в файл, но не в самый его конец, а на расстоянии в 60 символов до конца. Файл текстовый.

  Ответить  
 
 автор: heed   (26.08.2009 в 09:36)   письмо автору
 
   для: Костян   (26.08.2009 в 06:14)
 

я о том что при например таком

$fd = fopen('test_file.txt', 'r+');
fseek ($fd , -60, SEEK_END);
$str = fread($fd, 60);
fseek ($fd , -60, SEEK_END);
fwrite($fd, '12345' . $str);
fclose($fd);

и при таком
$fd = fopen('test_file.txt', 'r+');
fseek ($fd , -60, SEEK_END);
fwrite($fd, '12345');
fclose($fd);

получится два разныж результата

  Ответить  
 
 автор: Костян   (26.08.2009 в 19:45)   письмо автору
 
   для: heed   (26.08.2009 в 09:36)
 

Прекрасно подошел первый вариант. Осталась мелочь - как сделать так, чтобы при каждом обращении к файлу запись была каждый раз с новой строки. заранее благодарен.

  Ответить  
 
 автор: Вот случайно зашел   (26.08.2009 в 19:57)   письмо автору
 
   для: Костян   (26.08.2009 в 19:45)
 

"я строка для записи\r\n"

  Ответить  
 
 автор: Костян   (26.08.2009 в 20:28)   письмо автору
 
   для: Вот случайно зашел   (26.08.2009 в 19:57)
 

Спасибо, заработало!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования