Forum Webscript.Ru

Программирование => PHP => Тема начата: Matold от 28 Декабря 2003, 16:21:58

Название: Дурацкая ошибка
Отправлено: Matold от 28 Декабря 2003, 16:21:58
Кусочек скрипта для добавления новости:

$news="news.txt";
          ...
$fp = fopen($news, "r");
$tmp = fgets ($fp, 100);
fclose ($fp);
$fp = fopen($news, "w");
$zapis = "$zapis
 $tmp";
$fw = fwrite( $fp, $zapis);
fclose ($fp);

Однако в файл запоминается только одна новость,  старые исчезают (а хотел, чтобы дописывалась сверху). Ни как не пойму, в чем ошибка :(((
Название: Дурацкая ошибка
Отправлено: Меняздесьдавнонет от 28 Декабря 2003, 16:48:54
действительно, дурацкая.
ты считываешь из файла только первые сто байт, а потом удивляешься - куда делись все данные?

Луше всего для тебя будет не записывать новость сверху, а добавлять по-человечески, в конец.
Ты же ведь, чтобы выводить, все равно весь файл считываешь?
Название: Дурацкая ошибка
Отправлено: Matold от 28 Декабря 2003, 16:59:44
Цитировать
ты считываешь из файла только первые сто байт, а потом удивляешься - куда делись все данные?

Да нет, кол-во байт не играет значения, даже если их 1000 -  все равно  последняя новость замещает все остальные :(

Цитировать
Луше всего для тебя будет не записывать новость сверху, а добавлять по-человечески, в конец.

Ну вот это то у меня работало, но мне нужно самую свежую новость в начало страницы сайта, а считываться должен весь файл со всеми новостями
Название: Дурацкая ошибка
Отправлено: Matold от 28 Декабря 2003, 17:08:43
:rolleyes: Ееех, в ожидании ответа наткнулся на тему "как добавить страку в начало файла". Все, вопрос решен с добавкой новостей :cool:. Но ошибку в моем скрипте тоже хотелось бы узнать  :confused:
Название: Дурацкая ошибка
Отправлено: Меняздесьдавнонет от 28 Декабря 2003, 18:11:57
блин.
Ну выведи ты свое tmp хоть на экран!!!!
и убедись!
при чем здесь ЗАТИРАЕТ?
ЧТО ТЫ ЗАПИСЫВАЕШЬ в файл, то в нем и оказывается!
если ты записываешь в файл сначала $zapis, потом
, а потом то, что прочитал в $tmp - то и запишется!
Что здесь для тебя непонятно-то?

Цитировать
считываться должен весь файл

И зачем тогда извращаться с записью в начало файла?
тебя научить, как работать с массивами?