Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

regel aanpassen in txt

pvanharen
5 antwoorden
  • Ik zit met het volgende probleem. Ik heb een eenvoudig contactformulier gemaakt met html en php. Nou wil ik dat een ingevuld veld opgeslagen wordt in een .txt bestand. Maar nou wil ik dat het een regel vervangt, in plaats van dat het bovenaan in het .txt bestand komt te staan. Dus als er bij 'naam' Piet wordt ingevuld, moet hij bijvoorbeeld de tweede regel (waar dan bijvoorbeeld Jan staat) vervangen. Is dit mogelijk? Of is er een andere oplossing?

    Alvast bedankt
  • Bedoel je dat bij een nieuwe reactie de vorige reactie moet worden overschreven? In dat geval kun je beter het oude bestand weggooien en een nieuw maken:
    [code:1:ae0a9bfa0a]unlink('file.txt');
    fopen('file.txt', 'w');[/code:1:ae0a9bfa0a]
    Let wel dat wanneer er meerdere reacties zijn voor je het bestand bekijkt, je dus reacties mist. Waarschijnlijk daarom dat nieuwe bovenaan erbij worden gezet. Je kan ze ook onderaan zetten door bij fopen de 'w' te vervangen door 'a': www.php.net/fopen

    Of bedoel je nog iets anders?
  • Bedankt voor je antwoord. maar wat ik precies bedoel, is dat een ingevuld veld wordt vervangen door een bepaalde regel.

    Voorbeeld: In test.txt staat hetvolgende (de getallen zijn de regelnummers):

    1 Jan
    2 Piet
    3 Klaas
    4 Henk
    5 Bram

    Nou wil ik dat regel 3 (klaas) wordt vervangen door bijvoorbeeld Kees. Is dit mogelijk d.m.v. een formulier?
  • Waar haal je vandaan dat regel 3 (of een ander) wordt vervangen? Is het altijd regel 3, wordt dat in het formulier aangegeven, …?

    Daarna is het een kwestie van alles inlezen met bijv file_get_contents, dan de juiste regel aanpassen, en daarna alles weer wegschrijven met file_put_contents (zie php.net/[function_name] voor details)
  • Wat je het gemakkelijkste kunt doen is een sjabloon maken genaamd "sjabloon.txt". Daarin zet je bijvoorbeeld dingen als:
    [code:1:128afe4a85]Naam: {_naam_}[/code:1:128afe4a85]
    Dat lees je in middels php, je vervangt {_naam_} door de gewenste naam en schrijft het weg naar ingevuld.txt. Dat levert dus zoiets op:
    [code:1:128afe4a85]$sjabloon = file_get_contents('sjabloon.txt');
    $sjabloon = str_replace('{_naam_}', $naam, $sjabloon);
    if (!fwrite('ingevuld.txt', $sjabloon) ) {
    die("fout bij het schrijven naar bestand $filename");
    }[/code:1:128afe4a85]
    Heel simplistisch, maar het idee zal duidelijk zijn denk ik.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.