Hallo,

Ik ben bezig met een gastenboek met daarin de volgende regels:

$fp = fopen("inhoud.txt", "r+");
fwrite($fp, ' testbericht');
fclose($fp);

Het probleem: ik wil dat inhoud.txt bovenaan aangevuld wordt met nieuwe berichten. Bij gebruik van bovenstaande regels wordt inhoud.txt echter geopend en wordt de inhoudt vanaf het begin overgeschreven zodat je een wirwar van berichten over elkaar krijgt.

Mijn vraag:
Hoe kan ik simpel een tekst bovenaan bijschrijven zonder dat de tekst die al in het bestand staat overschreven wordt?

Alvast bedankt.
Met vriendelijke groet,
Robert
//haal eerst de inhoud op en zet die in een var
var $oudeInhoud = file_get_contents('jouw/bestand.txt);

//vervolgens zet je het nieuwe bericht ervoor
var $nieuweInhoud = $nieuwetekst . $oudeInhoud;

//en knal het erin...?
$fp = fopen("inhoud.txt", "r+");
fwrite($fp, $nieuweInhoud);
fclose($fp);
ik heb even een kleine funcite voor je geschreven:

<?php
function schrijf($file, $content)
{
if(file_put_contents($file, file_get_contents($file).$content))
{
return 'gelukt';
}
else
{
return 'failed';
}
}

echo schrijf('file.txt', 'iets');
?>

[edit]
nu wordt het erachter geschreven, gebruik dit om er voor te schrijven:
[/edit]

<?php
function schrijf($file, $content)
{
if(file_put_contents($file, $content.file_get_contents($file)))
{
return 'gelukt';
}
else
{
return 'failed';
}
}

echo schrijf('file.txt', 'iets');
?>
maak een map waarin geschreven kan worden (IN heel de map) en gooi daar berichten in, beginnend met utc time en dan .txt ofzo. Misschien IP adres erbij zodat meerdere IPs op zelfde seconde berichten kunnen schrijven.
Maar beste tip: gebruik aub SQL! Dan heb je nooit zo\'n probleem! En je kan sorteren en weglaten en verwijdren etc etc etc
Ik wil die functie gaan gebruiken,
Maar wat is nou het bestand, en het bij te schrijven bericht.
Ik had nu: $file = 'inhoud.txt' en de rest origineel.
Er word echter niets in inhoud.txt geschreven.

Moet ik iets met $content doen?
Wat betekent 'iets' in echo schrijf('file.txt', 'iets'); ?
Dat betekent dat je probeert de string 'iets' naar de file te schrijven.
ik denk dat je die r+ moet veranderen in a+. r+ zet nl de pointer aan het begin van de file en a+ aan het einde.

Vervolgens zou je eerst moeten kijken of de file iets bevat. Als jij iets bevat zou je voordat je gaat schrijven een \r\n moeten doen bijv.

Reageren