Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > PHP / MySQL

PHP / MySQL Создание динамических Веб-ресурсов

Ответ
 
Опции темы
Старый 17.05.2010, 23:46   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Функция fopen с аргументом "r+" - с чем кушать???

Собственно, вскрываю файл с r+, а он мне его перезаписывает...Странно, в справке написано что устанавливает позицию в начало файла, а он мне его так жестоко...
<?
$message=$_POST['Msg'];

$f=fopen("texts/news.txt","r+");
fwrite($f,htmlspecialchars($message).chr(13).chr(1 0));
fclose($f);
$f=file("texts/news.txt");
$count=count($f);
echo("<script language='JavaScript'>alert('$count');</script>");
if ($count>10)
{
echo("<script language='JavaScript'>alert('$count больше 10');</script>");
$fs=fopen("texts/news.txt",w);
for($k=0;$k<9;$k++)
{
fwrite($fs,chr(13).chr(10).$f[$k]);
}
fclose($fs);
}
echo("<meta http-equiv=refresh content=0;url=index.php>") ;
?>


можт я где туплю?
(Offline)
 
Ответить с цитированием
Старый 18.05.2010, 19:24   #2
devolonter
Разработчик
 
Аватар для devolonter
 
Регистрация: 17.01.2007
Сообщений: 409
Написано 114 полезных сообщений
(для 281 пользователей)
Ответ: Функция fopen с аргументом "r+" - с чем кушать???

Все правильно. r+ устанавливает позицию в начало файла и соответственно перезаписывает его. Если тебе нужно дописать файл, то используй опцию а+ (устанавливает позицию в конец файла)

Доп. информация: http://ru2.php.net/manual/en/function.fopen.php

P.S Уточняю, происходит запись поверх старых данных, т.е. если новых данных окажется меньше то в режиме r+ у тебя будут новые данные и остаток от старых. как-то так)

P.P.S. Вместо echo("<meta http-equiv=refresh content=0;url=index.php>") ; лучше использовать header('location: /index.php'), правда нужно помнить что заголовки устанавливаются до первого вывода чего-либо на экран, т.е. до первого вызова echo или print
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:25.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com