zdravim. jde nejak nastavit a aby funkce fwrite nazapisovala na konec souboru, ale na zacatek? nebo jde to vyresit nejak jinak (bez MySQL) ?
díky
imho to nejde.
jistym resenim muze byt zapisovat na konec a soubor by se pak nacital do pole, ktery bys obratil
Nebo zapisovat obrácený řetězec na konec a soubor číst pozpátku (to v případě, že nerozlišuješ řádky a nemůžeš pak použít načítání do pole).
to jak říká Toník jsem jednou použil, myslím, že to bylo podle mod. Richarda, zápis příspěvku do jednoho řádku a pak načítat odspodu:
$data = File("book.dat");
$data = array_reverse($data);
foreach ($data as $val) {
$val = stripslashes($val);
echo "$val<br>";
}
jsem trosku mene chapavy. nemohl bys mi to vysvetlit trochu polopaticky...
Funkce $pole = File(soubor.dat) načte soubor.dat do $pole tak, že každý řádek je jedním prvkem pole. Do souboru tedy můžu zapisovat pokaždé na nový řádek na konec, jenom při výpisu souboru, musím vypsat řádky od posledního k prvnímu (cyklem).
mockrat diky, ale nakonec jsem to vyresil jinak. Jednodušší řešení je načíst obsah souboru do proměnné, vynulovat ho a následně do něj vložit obsah s přidaným řádkem...
To nedělej v žádném případě. V jednu chvíli je celý obsah souboru v proměnné a tudíž visí ve vzduchu. V případě, selhání skriptu se obsah souboru smaže. Obsah se smaže také ve chvíli, kdy budou do souboru zapisovat dva lidi zároveň (tady by ale mohlo pomoct flock()).
Když nevím, do manuálu čumím:o)
http://php.ftp.cvut.cz/manual/cs/function.flock.php
<HTML>To chces pri kazdem zapisovacim requestu zapisovat vsechny data znovu?
Ale kdyz myslis ze data ctena/zapisovana na disk pracuji rychleji nez jejich otoceni v RAM prosim.. S takovym resenim ale na pomalost doplati vice lidi nez jen ty</HTML>