Ik moet eerlijk bekennen dat ik geen betere oplossing weet. Met fseek zou je naar het begin van een bestand kunnen gaan met de pointer, maar ik ben bang dat als je dan vervolgens met fwrite gaat schrijven, hij de bytes die er al stonden niet opschuift maar overschrijft, of gewoon platweg een error geeft.
edit: nee, ik krijg het niet werkend om iets aan het begin van het bestand toe te voegen. Zowel modus op 'r+' als spelen met andere modus en [php]fseek[/php] heeft geen effect.
edit: Argh, nu overschrijft hij dus simpelweg de oude data, wat dus ook niet echt opschiet.. Hoe kan ik dit laten opschuiven? (of een new line maken) :)
Als reactie op Erik zijn post:
<?php
$fhandle = fopen('test.txt', 'r+');
//fseek($fhandle, 0);
fwrite($fhandle, 'Hello World' . mktime() . PHP_EOL);
fclose($fhandle);
?>
Heb ik geprobeerd, en hij herschrijft gewoon de eerste regel van het bestand.
Gebruik de r+ die Sokaiya aanraadde, bij w+ staat het onderstaande:
"Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it."
Betekenis:
"Open voor lezen en schrijven; plaats de bestandspointer aan het begin van het bestand en breng het bestand terug naar 0 lengte. (gooi het bestand dus leeg) Als het bestand niet bestaat, probeer het dan te maken.