Avatar billede zerohero Nybegynder
19. november 2003 - 12:51 Der er 7 kommentarer og
1 løsning

Skrive og læse tik txt filer!

Nogle gange når min php script skriver til en txt fil, sletter den alt, og lader en min fil være tom. Eksempelvis ved min besøgstæller. Jeg bruger en normal script ved først at fopen("filnavn","r+") og læse tælleren og derefter lukke den igen. ændre tælleren åbne filen for skrivning "w+" og lukke den. Det virker fint de fleste gange, men der er altså som sagt nogen gange den lader min fil være blank + kan det virklig passe?
Avatar billede rackbox Nybegynder
19. november 2003 - 14:10 #1
Du skal bruge 'a+'

Med r+ og w+ placerer php pointeren i starten af filen. w+ sletter samtidig indholdet af filen.

http://dk.php.net/fopen
Avatar billede zerohero Nybegynder
19. november 2003 - 14:37 #2
Jamen, mit tal skal erstattes med et nyt tal. Der er kun ét tal i filen, så det vil være oplagt at bruge w+ istedet for a+ eller hvad?
Avatar billede rackbox Nybegynder
19. november 2003 - 14:42 #3
Nå, på den måde...

Her er et forslag:

function page_count_up($page){
        $count = page_count_show($page);
        $count++;

        $fh = fopen('page'.$page.'.txt', 'w+');
        fwrite($fh,$count);
        fclose($fh);

        return $count;

}

function page_reset_count($page){
        $fh = fopen('page'.$page.'.txt', 'w+');
        $count = 0;
        fwrite($fh,$count);
}

function page_count_show($page){
        if (!file_exists('page'.$page.'.txt')){
                $fh = fopen('page'.$page.'.txt', 'w+');
                $count = 0;
                fwrite($fh,$count);
        } else {
                $fh = fopen('page'.$page.'.txt', 'r+');
                $count = fgets ($fh);
        }
        fclose($fh);
        return $count;
}
Avatar billede rackbox Nybegynder
19. november 2003 - 14:45 #4
Disse funktioner retter et tal til tal++ i en fil, der hedder "page".$page.".txt";

page_reset_count($page) nulstiller counteren
page_count_show($page) returnerer den nuværende værdi
page_count_up($page) forøger værdien i counteren.

Det fikse ved at bruge denne metode er at du kan oprette en count-fil for hver side.
Avatar billede zerohero Nybegynder
19. november 2003 - 15:11 #5
Lyder interessant! Men problemet er bare at jeg også bruger tekst filer til andet end counters. Og det samme problem har jeg selvfølig med dem. Det kan bare ikke passe at PHP kan finde på at efterlade en fil blank når jeg udtrykkelig fortæller den at udfylde den.
Avatar billede rackbox Nybegynder
19. november 2003 - 17:21 #6
Men så skal du bruge a+ i disse filer...
Avatar billede zerohero Nybegynder
22. november 2003 - 21:25 #7
Jeg synes stadig det er lidt fattig af PHP at den er ustabil med at skrive til textfiler... Du skal nu i ligevel havde points for din ihaedige indsats!
Avatar billede rackbox Nybegynder
23. november 2003 - 02:21 #8
PHP er ikke ustabil mht. det.. Prøv at kigge på www.php.net/fopen - der er specifikationerne... Og det står tydelig nævnt at den flusher filen ved w+
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