Функция 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>") ; ?> можт я где туплю? |
Ответ: Функция 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 |
Часовой пояс GMT +4, время: 06:23. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot