Proč fopen r+ maže data?

Nechápu to...
Podle manuálu a podle mých dosavadních zkušeností s fopen znamená, že tento kód:
$fp = fopen("log.txt", "r+");
fputs ($fp, "\n\n$datum\nzáloha byla úspěšně zapsána!\n");

otevře soubor log.txt, nastaví ukazatel na začátek souboru a PŘIPÍŠE nahoru nějaká data... Tak proč, když použiju tenhle kód se mi všechna data, co jsou v tom log.txt napsána na prvních dvou řádcích přepíšou hodnotami, které vkládám?

Příklad:
v souboru je tohle:
ahoj
čau
jak je?
mějte se!

já použije tenhle skript:
$fp = fopen("log.txt", "r+");
fputs ($fp, "bububu\njak je to možné?");

a výsledkem je tohle:
bububu
jak je to možné?
jak je?
mějte se!
A četl jsi popis této funkce na php.net:
'r+' - Otevřít pro čtení a zápis; nastaví ukazatel na začátek souboru.

Pokud chceš přidávat na konec souboru, použij parametr "a".
asi jsem to blbě popsal, ale já chci, aby tam po tom mym příkladu nebylo tohle:
bububu
jak je to možné?
jak je?
mějte se!

ale tohle:
bububu
jak je to možné?
ahoj
čau
jak je?
mějte se!
pridavat na zacatek souboru proste takhle jednoduse nejde. na konec jo, ale na zacatek ne. to bys musel celej ten soubor nacist do pameti, pak zapsat co ma byt na zacatku a pak zapsat z pameti co tam bylo predtim
aha, jasně, díky!
Taky jsem na to prisel źe to tak nejde, nekdy to zapise, ale kdyz nejak zrovna blbne server tak se vsecko vymaze. Ja neukladam do jednoho souboru, mam proste pro kazdy data jiny soubor, ktery mi vytvori automaticky script, je to tak jednodussi co se tyce kdyz chces z databaze neco vymazat
jo, to jsem asi mel zminit, ze kdyz to budes delat takhle: "soubor nacist do pameti, pak zapsat co ma byt na zacatku a pak zapsat z pameti co tam bylo predtim", tak se ti spolehlive obsah toho souboru ztrati.
takze je lepsi pridavat na konec appendem a pak to pri cteni obratit
Budulínek a.s. : "ale kdyz nejak zrovna blbne server tak se vsecko vymaze."
To nebude serverem ;) To je tím, že se ti sejdou dva "dotazy" na jeden soubor a ten se ti potom vymaže - standardní chování. Buď začni využívat databaázi, nebo bude muset soubor před každou úpravou zamykat.
No neřekl bych že ten způsob načíst do paměti zapsat nový záznam zapsat za tím to staré co je uložené v paměti, že je to nějak nespolehlivé používám to je jeden log na webu takhel už asi dva roky, a ani jednou jedinkrát se mi obsah souboru nesmazal.
(druhej) Mike: pokud kolem toho mas flock (nebo jiny spolehlivy zamykani), tak je to asi ok, i kdyz bych do toho stejne nesel (co kdyz ten skript nejak pred zapsanim dat spadne). ale vem si priklad: mas skript, kterej v kroku 1 nacte soubor, v kroku 2 ho smazne a v kroku 3 do nej zapise novy + stary data. ted navstevnik A spusti skript a navstevnik B taky spusti ten skript. od A to provede kroky 1 a 2, pak se dostane ke slovu B a nacte prazdny soubor. A ulozi data. B smaze soubor a ulozi data. vysledkem je ztrata dat. a ver tomu, ze se to stane, nezalezi na tom, kolik lidi ti chodi na web ani na nicem jinym.