ik heb phpcode, die steeds bij een foutmelding een tekst in een bestand neerzet... Maar de laatste foutmelding wordt onderaan geplaatst, dat moet dus niet... Hoe kan ik ervoor zorgen dat, als er een foutmelding optreedt, deze ook meteen bovenaan geplaatst wordt??
Door het bestand helemaal in te lezen, filepointer weer op het begin te zetten, nieuwe foutmelding weg te schrijven en tot slot het aan het begin ingelezen gedeelte er achteraan te schrijven.
Kortom, doe maar niet
Kortom, doe maar niet
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Bestand openen met "r+", hele bestand inlezen, dan met ftruncate() 't hele bestand leeghalen, vervolgens de nieuwe error message in 't bestand schrijven (dankzij "r+" kun je dat meteen doen zonder 't bestand opnieuw te hoeven openen), en tot slot de rest van de data die je net hebt ingelezen opnieuw in 't bestand schrijven.
http://www.php.net/manual/en/function.fopen.php
Zelf zoeken kan ook lijkt me ...'r+' - Open for reading and writing; place the file pointer at the beginning of the file.
Veel werk? Valt wel mee.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php function addMessage( $filename, $message ) { $f = fopen( $filename, "r+" ); $buf = fread( $f, filesize( $filename ) ); ftruncate( $f, 0 ); fwrite( $f, $message ); fwrite( $f, $buf ); fclose( $f ); } ?> |
That should be it.
Pagina: 1