zápis do souboru a rewind()

mam takovej malej problém...

samozřejmě vím, jak se zapisuje do souboru, ale nemůžu přijít na to, aby se ty nový věci, co tam vkládám (pomocí FPutS();), ukládaly na začátek souboru a ne až na konec za ty dřívější... (aby to zkrátka fungovalo jako zásobník)... zkoušel jsem funkci Rewind(), ale nějak to nechtělo fachat... ale možná někde byla chyba? je tedy správne použít rewind() nebo je na to nějakej jinej fígl?
Myslym že stačí když otvíráš soubor FOPEN("xxx.xx","w+") -ale nevím jistě...
<?
... ... ...


//Nejdříve otevřeš soubor pro čtení a pomocí fce fread() přečteš data
$fop = fopen($file , "r");
$stara_zprava = fread ($fop, filesize($file));
fclose($fop);


//Potom otevřeš pro zápis a nejdřív vložíš novou zprávu a za ní starou
$fp = fopen ($file , "w");
fputs ($fp, $nova_zprava.$stara_zprava);
fclose($fp);

... ... ...
?>
<HTML>radeji bych volil zpusob:
cteni: file()
zapis: text\n</HTML>
Problém tohohle postupu je ten, že v jednu chvíli je soubor prázdný. Může se stát - když se sejdou dva zapisující uživatelé v jeden okamžik - že se soubor smaže. Kdosi mi radil používat flock(), ale ještě jsem nezkoušel, tak nevím...
<HTML>ja vim..
ta funkce je samozrejmosti</HTML>
Aha tak to promiň pro mě totiž moc samozřejmostí není. Nicméně já stejně nereagoval na tvuj komentář ale na ten předešlý. Tys sem přispěl ve chvíli když sem to psal :)
<HTML>jj, alespon jsme predvedli ze databaze takovy problem nema (neboli ma ho vyreseny) narozdil od filestreamu :)</HTML>
no, mně je čtení a (částečně=) zápis do souboru jasnej.... šlo mi to to, jak nový věci zapisovat na úplnej začátek souboru, t.j., aby se ty starší jaxi posunovaly dolu

funkce rewind("soubor"); mi u souboru otevřenýho pro zápis takhle $fp=("soubor","a"); prostě nefunguje - proč? je špatně parametr "a"?

mam to ošetřený ifem takhle
if(!rewnd("soubor")) exit;
...
takže se další příkazy neprovedou - fce rewind() vrací false...toť onen zakopaný pes
$fp=("soubor","a"); znamená, že zapíšeš na konec. Já mám pocit že rewind ti ani tady nepomůže. Zatím sem se setkal jedině z řešením, které uvedl Petr Bláha a Mastr. Když samozřejmě opomenu svoji prvotinu :)

http://www.webzdarma.cz/forum/read.php?f=2&i=10258&t=10258
<HTML><i>Já mám pocit že rewind ti ani tady nepomůže</i>

spravne, nepomuze...

priznak "a" je absoluni zapis na konec souboru... nelze to menit.

rhsk:
asi jsi me nepochopil...

tak to jeste o neco zjednodusim a napisu to natvrdo (#!#!#!#)

ZAPIS DO SOUBORU:

$f = fopen("soubor.txt", "a");
fwrite($f, "toto je text ktery pridavam\n");
fclose($f);

CTENI A VYPIS ZE SOUBORU:

$data = array_reverse(file("soubor.txt"));

foreach($data as $value) {
echo nl2br($value);
}</HTML>
tak díky, už to fachá