блин.
Ну выведи ты свое tmp хоть на экран!!!!
и убедись!
при чем здесь ЗАТИРАЕТ?
ЧТО ТЫ ЗАПИСЫВАЕШЬ в файл, то в нем и оказывается!
если ты записываешь в файл сначала $zapis, потом
, а потом то, что прочитал в $tmp - то и запишется!
Что здесь для тебя непонятно-то?
считываться должен весь файл
И зачем тогда извращаться с записью в начало файла?
тебя научить, как работать с массивами?