Autor Zpráva
Trája
Profil *
Ahoj, potřebuji vložit text na začátek souboru, dříve jsem postupoval takto:

$fp = fopen($soubor, 'r');
$stary_text = fread($fp, filesize($soubor));
fclose ($fp);

$fp = fopen($soubor, 'w');
fputs($fp, $novy_text.$stary_text);
fclose ($fp);

Stávalo se však, že se zápis nezdařil, nový soubor byl prázdný a došlo tedy ke ztrátě dat.

Podařilo se mi psát na začátek souboru využitím módu r+:

$fp = fopen($soubor,"r+");
fputs($fp,$novy_text);
fclose($fp);

Avšak nový text nahrazuje ten starý, potřeboval bych, aby se ten starý jaksi inteligentně posunul =)

Ještě jeden dotaz, funkce fseek nefunguje pro zápis? Nebo je omezena módem r+?

Děkuji.
tiso
Profil
1. r+ funguje, ale musíš najprv uložiť obsah súboru do nejakej premennej ako pri prvom spôsobe -> fopen, fread, fputs, fclose.
2. fseek
3. Strate dát môžeš zabrániť napríklad tak že pokiaľ načítanie súboru neprebehne, tak nezapisuješ ale opakuješ načítanie, pokiaľ zápis neprebehne v poriadku tak nezatvoríš súbor ale opakuješ zápis, kým sa nepodarí, albo vypíšeš celý obsah súboru na obrazovku a uložíš si ho ručne Ctrl+C Ctrl+V
Toto téma je uzamčeno. Odpověď nelze zaslat.