Bovenaan bij schrijven i.p.v. overwriten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert

Robert

28/11/2006 14:48:00
Quote Anchor link
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
 
PHP hulp

PHP hulp

06/05/2024 21:39:52
 
M Ypma

M Ypma

28/11/2006 14:53:00
Quote Anchor link
//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);
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
 
PHP Newbie

PHP Newbie

28/11/2006 15:06:00
Quote Anchor link
ik heb even een kleine funcite voor je geschreven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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');
?>
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
Majid Ahddin

Majid Ahddin

28/11/2006 15:44:00
Quote Anchor link
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
 
Robert

Robert

06/12/2006 22:56:00
Quote Anchor link
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'); ?
 
Jan Koehoorn

Jan Koehoorn

06/12/2006 22:58:00
Quote Anchor link
Dat betekent dat je probeert de string 'iets' naar de file te schrijven.
 
Jurgen assaasas

Jurgen assaasas

07/12/2006 10:09:00
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.