marilieha Skrevet 27. juli 2005 Del Skrevet 27. juli 2005 Driver og lager gjestebok som skriver og leser til/fra fil. Har et felt av typen: <textarea name="beskjed" rows="10" cols="30"></textarea> for å skrive inn hilsen. Når hilsnen blir lagret, lagres den i flere linje i fila, hvis man har trykket enter(for å skifte linje) ved inskriving av hilsen. Når jeg da skal lese fra gjesteboka, vil jeg ha nyeste beskjed først og har brukt metoden file(gjestebok.txt) som legger hver linje i fila i et matrise element. Det er her problemet oppstår. Hvis man har brukt enter under skriving av hilsnen, vil hilsnen bruke flere matrise elementer og ved utskrift vil det f.eks se slik ut: Hilsen meg ---------------------------------------- for en kul hjemmeside du har. ---------------------------------------- dato 15.07.05 navn: Kine Hei! ---------------------------------------- Altså det kommer ut som tre beskjeder i gjesteboka. Har prøvd metoden trim() for å fjerne linjeskift, men fikk den ikke til å fungere. Koden min ser slik ut: $matrise=file("gjestebok.txt"); $matrise=array_reverse($matrise); foreach($matrise as $linje) { $neste = explode("***___***", $linje) ; echo ( $neste[0]); echo ( $neste[1] ); echo ( $neste[2] ); echo "<hr>"; } Noen som kan hjelpe? Lenke til kommentar
mikk- Skrevet 27. juli 2005 Del Skrevet 27. juli 2005 (endret) Hvis du har et "tegn" som skiller kommentarer, kan du bruke "explode". La oss si at tegnet er "#%#%". I funksjonen som skriver til fila, legger du til "#%#%" etter hvert innlegg, slik at hvert innlegg avsluttes med dette. Innlegg nummer én #%#% Innlegg nummer to #%#% Innlegg nummer tre. Så bruker du explode: $file_get_contents = "gjestebok.txt"; $innlegg = explode("#%#%", $filinnhold); Innleggene hentes fram på vanlig måte, $innlegg[0], $innlegg[1], osv. Dersom du vil ha flere "felt" i hvert innlegg, kan dette gjøres på en liknende måte. Du kan skille de ulike feltene med en annen kode, for eksempel "#=". Etter du har gjort det jeg skrev over, kjører du bare en foreach som "explode'rer" hvert enkelt innlegg med "#=" som separator. Deretter ligger for eksempel Navn i Innlegg 3 som $innlegg[2][0]. For å hindre bugger som følge av at en bruker (ufrivillig?) skriver "tegnene", kan du ha en funksjon som leter gjennom koden etter disse tegnene før den skrives til fila. Om de finnes, erstatter du dem med noe annet. Dette kommer uansett ikke til å skje så veldig ofte Endret 27. juli 2005 av Mikka Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå