login  Naam:   Wachtwoord: 
Registreer je!
 Forum

fwrite schrijft eroverheen

Offline timo - 17/12/2007 11:40
Avatar van timoPHP ver gevorderde 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
Offline Vincjenzo - 17/12/2007 16:24 (laatste wijziging 19/12/2007 13:57)
Avatar van Vincjenzo Nieuw lid 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-2024 Sitemasters.be - Regels - Laadtijd: 0.2s