login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > PHP

fwrite schrijft eroverheen

timo – 17/12/2007 11:40
Ik ben bezig met een AJAX chatbox, maar als ik het bericht naar een bestand schrijf krijg ik dit:
Citaat:
admin_away - 11:37:17 - ey
eentijd - bla
test - test - test
Admin - eentijd - bla
test - test - test
Admin - eentijd - bla
test - test - test
Admin - eentijd - bla

ipv
Citaat:
admin_away - 11:37:17 - ey
Admin - eentijd - bla
test - test - test
Admin - eentijd - bla
test - test - test
Admin - eentijd - bla
test - test - test
Admin - eentijd - bla


hij schrijft dus een paar bytes van de volgende regel over, script:
  1. <?php
  2. $message = $_GET['user'].' - '.date('H:i:s').' - '.$_GET['msg']."\n";
  3. echo $message;
  4. $thechat = fopen('chats/'.$_GET['chat'].'_chat.chat','r+');
  5. fwrite($thechat,utf8_encode($message));
  6. fclose($thechat);
  7. ?>


iemand enig idee hoe het wel moet werken, hij moet wel naar begin van bestand schrijven, het ophalen gebeurd alleen de 1e 30 regels..

1 antwoord

Gesponsorde links

Vincjenzo – 17/12/2007 16:24 (Laatst gewijzigd op 19/12/2007 13:57)
fopen met +r zet de pointer naar het begin van het bestand, en dan begint ie te schrijven.

Dit:
  1. <?php
  2. $message = "een bericht\n";
  3. $thechat = fopen('test.chat','r+');
  4. fwrite($thechat,$message);
  5. fclose($thechat);
  6. ?>


Kan je doen tot je een ons weegt, maar het komt er niet bij. Dus ik denk dat je het gehele bestand moet lezen, het nieuwe bericht ervoor te plakken en dan alles wegschrijven. Maar dat is niet goed voor de performance lijkt me.

EDIT: (r+) 

Gesponsorde links

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.075s