Avatar billede webcreator Nybegynder
03. september 2009 - 11:35 Der er 1 kommentar

PHP: Fopen() til både læsning og skrivning

Hej Eksperter.

Jeg har brug for at kunne både læse og skrive fra en fil-ressource (fra fopen()). Dette kan jeg opnå med modes a+ og w+, som også opretter filen, hvis den ikke eksisterer (hvilket jeg har brug for). Efter jeg har læst indholdet fra filen, har jeg brug for at kunne overskrive alt indholdet med nyt data. Dette synes jeg ikke at kunne få lov til med a+. Jeg har tilmed prøvet at kalde rewind($handler), for at flytte den interne pointer til starten af filen, men uden held. Og jeg er også i tvivl om, hvorvidt ALT data i filen vil blive overskrevet, hvis det nye data fylder mindre end det gamle. Det andet mode, w+, har den ulempe, at det fjerne alt indholdet fra filen straks, så jeg aldrig kan nå at læse indholdet først.

At åbne filen af flere omgange er ikke en mulighed, da jeg umiddelbart efter kaldet til fopen sætter en lås herpå med flock() - så det skal være den samme ressource jeg bruger til både læsning og skrivning - det skal være fuldstændig atomart.

Er der nogen af Jer derude, der har et fif ? Findes der fx en Fclear() funktion eller lignende til at wipe indholdet af en ressource som man har åbnet med a+ ?
Avatar billede Slettet bruger
03. september 2009 - 11:59 #1
Åben filen i mode'en r+. Læs derefter hele filen, slet indholdet med
ftruncate($fil, 0);
og skriv igen med
fwrite($fil, "Skriv mig");
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester