Toon posts:

[php] tekstbestand

Pagina: 1
Acties:

Verwijderd

Topicstarter
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??

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

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 :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Devil N
  • Registratie: September 2000
  • Laatst online: 14-08 16:15
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.

Verwijderd

Topicstarter
ja lekker veel werk...


Nou bedankt i.i.g. _/-\o_

  • Koffie
  • Registratie: Augustus 2000
  • Laatst online: 01-09 17:48

Koffie

Koffiebierbrouwer

Braaimeneer

http://www.php.net/manual/en/function.fopen.php
'r+' - Open for reading and writing; place the file pointer at the beginning of the file.
Zelf zoeken kan ook lijkt me ...

Braaikamer - Smoke&BBQ


  • Devil N
  • Registratie: September 2000
  • Laatst online: 14-08 16:15
Verwijderd schreef op 20 augustus 2002 @ 13:04:
ja lekker veel werk...


Nou bedankt i.i.g. _/-\o_
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