Vraag & Antwoord

Webprogrammeren & scripting

regel aanpassen in txt

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

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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