Tha_Zaynt Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 koden nedenfor skriver noe av informasjonen fra et skjema til en fil. Dette funker forsåvidt bra, men hvis filen er tom fra før får jeg denne feilmeldingen: Warning: fread(): Length parameter must be greater than 0. Hva betyr den, og hvordan blir jeg kvitt den? $innlegg = <<<innlegg <div> <strong>$fornavn</strong> <strong> $etternavn</strong> </div> innlegg; if(!file_exists($filename)) { $fp = fopen($filename,'w'); fclose($fp); } $file = fopen($filename, 'r'); her ligger feilen---->$gamle_innlegg = fread($file, filesize($filename)); fclose($file); $ny_tekst = $innlegg. "\n" .$gamle_innlegg; $file = fopen($filename, 'w'); fwrite($file, $ny_tekst); fclose($file); Lenke til kommentar
Lokaltog Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 Jeg anbefaler deg å bruke file_get_contents i dette tilfellet. Til problemet ditt: Du får feilen fordi filesize($filename) returnerer 0, og parameteren lenght må være større enn 0. For å løse problemet ditt putter du ganske enkelt bare et tegn, hva som helst, inn i fila, så skal problemet være løst. Med file_get_contents mener jeg du slipper hele dette problemet, med det er jeg ikke sikker på. Lenke til kommentar
Torbjørn Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 istedet for å bruke fopen og fclose for å lage deg en tom fil kan du bruke funksjonen "touch" som er laget for nettopp dette. Lenke til kommentar
Lokaltog Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 istedet for å bruke fopen og fclose for å lage deg en tom fil kan du bruke funksjonen "touch" som er laget for nettopp dette. Jøss - det var glupt. Trodde man måtte bruke fopen i append-modus for å opprette filer! Da lærte jeg noe nytt i dag også! Lenke til kommentar
Tha_Zaynt Skrevet 20. oktober 2004 Forfatter Del Skrevet 20. oktober 2004 når jeg brukte $gamle_innlegg = file_get_contents($file, filesize($filename)); fikk jeg: Warning: file_get_contents() expects parameter 1 to be string, resource given in c:\appserv\www\lansystem\pameldingsskjema.php on line 216 Lenke til kommentar
???????? Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 Du skal ikke ha med filesize: $gamle_innlegg = file_get_contents($file); Lenke til kommentar
Lokaltog Skrevet 20. oktober 2004 Del Skrevet 20. oktober 2004 Det som er det smarte med file_get_contents er at du åpner en fil, leser fra den og lukker den i en enkel funksjon! Hvis du hadde slått opp i manualen hadde du sett at file_get_contents vanligvis bare tar én parameter, og det er filnavnet. Du trenger altså ikke fopen og fclose. Lenke til kommentar
Tha_Zaynt Skrevet 20. oktober 2004 Forfatter Del Skrevet 20. oktober 2004 (endret) ahh..selfølgelig. Men det virker som den skriver over det som står der fra før.. koden ser forresten sånn ut nå: if(!file_exists($filename)) { $fp = fopen($filename,'w'); fclose($fp); } $gamle_innlegg = file_get_contents($file, filesize($filename)); $ny_tekst = $innlegg. "\n" .$gamle_innlegg; $file = fopen($filename, 'w'); fwrite($file, $ny_tekst); fclose($file); Endret 20. oktober 2004 av Tha_Zaynt Lenke til kommentar
Torbjørn Skrevet 21. oktober 2004 Del Skrevet 21. oktober 2004 jeg skjønner ikke helt hva du driver på med... du har ikke fikset på hvordan du brukre file_get_contents, du har ikke satt inn touch, selvom det bare er en kosmetisk/logisk forbedring, og du bytter fram og tilbake på variablene $file og $filename. sjekk hvilke funksjoner som skal ha en et filnavn ($filename) og hvilke som skal ha en filehandle ($file) Lenke til kommentar
Tha_Zaynt Skrevet 21. oktober 2004 Forfatter Del Skrevet 21. oktober 2004 er ikke akkurat noen reser på dette..kan du vise meg hvordan det bli da? Lenke til kommentar
Torbjørn Skrevet 21. oktober 2004 Del Skrevet 21. oktober 2004 javisst. $filename inneholder filnavnet du bruker. $file har jeg ennå ikke fått noen fornuftig kommentar på hvordan du hadde tenkt deg å bruke. en file handle kanskje? Hvordan lage fil som ikke finnes: #Ikke slik: if(!file_exists($filename)) { $fp = fopen($filename,'w'); fclose($fp); } # Men slik: if(!file_exists($filename)) { touch($filename); } Hvordan lese inn hele fila til en variabel: #Ikke slik: $gamle_innlegg = file_get_contents($file, filesize($filename)); #Men som alle har prøvd å forklare, slik: $gamle_innlegg = file_get_contents($filename); Resten bør fungere. Lenke til kommentar
Tha_Zaynt Skrevet 21. oktober 2004 Forfatter Del Skrevet 21. oktober 2004 Så ut til å fungere fint dette ja...et par ting til jeg lurer på; Hvordan kan jeg legge til nummere på "innleggene" slik at listen blir slik; 1. $fornavn $etternavn 2. $fornavn $etternavn 3. $fornavn $etternavn osv.. spm nr. 2; Hvordan gjør jeg det hvis jeg vil ha forskjellig bakgrunnsfarge på annenhver linje? (bruker div's ikke tabell..) grunnen til dette er at jeg vil gjøre listen så oversiktlig som mulig. Lenke til kommentar
Tha_Zaynt Skrevet 21. oktober 2004 Forfatter Del Skrevet 21. oktober 2004 Tror jeg har funnet et kode som gir nr. til hvert innlegg som øker for hver linje, men vet ikke riktig hvordan jeg kan modde det slik at d funker med skriptet mitt. Dessuten er det noen funksjoner som jeg ikke trenger der, men jeg vet ikke hva jeg skal ta bort for plutselig funker ikke noe...samm med skiftingen av bakgrunnsfarge..Har funnet en kode, men er ikke sikker på hvordan jeg tar den i bruk; <table> <tr bgcolor="<?php echo ($i%2)?"#ffffff":"#c0c0c0";?>"><td>her slenger du inn noe gøy</td></tr> <tr bgcolor="<?php echo ($i%2)?"#ffffff":"#c0c0c0";?>"><td>her slenger du inn noe gøy</td></tr> </table> $line = 0; $file = file($CommentFile); while ($file[$line]) { $a = explode("|", $file[$line]); if ($a[0] == "$dir/$filename") echo "<p><i>$a[1] </i></p>\n"; $line++; Lenke til kommentar
Tha_Zaynt Skrevet 21. oktober 2004 Forfatter Del Skrevet 21. oktober 2004 (endret) mulig jeg er _helt_ bak mål nå, men dette funket ikke; if(!file_exists($filename)) { touch($filename); } $line = 0; $file = file($filename); while ($file[$line]) { $a = explode("|", $file[$line]); $line++; } $gamle_innlegg = file_get_contents($filename); $ny_tekst = $innlegg. "\n" .$gamle_innlegg; $file = fopen($filename, 'w'); fwrite($file, $ny_tekst); fclose($file); Noen som vet hva som skal til for at det skal funke? skjønner ikke bæret jeg.. Endret 21. oktober 2004 av Tha_Zaynt Lenke til kommentar
Tha_Zaynt Skrevet 22. oktober 2004 Forfatter Del Skrevet 22. oktober 2004 ingen som har eksempler på f.eks en gjestebok som er flatfilbasert som gir nummer til innleggene som jeg beskrev tidligere? Blir litt vanskelig å lage sånn fra scratch når man har så lite erfaring.. Lenke til kommentar
Torbjørn Skrevet 23. oktober 2004 Del Skrevet 23. oktober 2004 utfra det jeg kan se og utfra det du sier du prøver og gjøre virker det som om du prøver på noe du ikke har mulighet til å forstå hvordan skal gjøres. Det gjør det litt vanskelig å begynne å forklare. hva med å istedet følge en phptutorial om one helt annet for faktisk å lære deg php fra grunnen av? Lenke til kommentar
Tha_Zaynt Skrevet 23. oktober 2004 Forfatter Del Skrevet 23. oktober 2004 (endret) Jeg har egentlig ikke tid til å lære meg alt fra bunnen av nå...finnes det ingen tutorialer som går på bare det med flatfiler? Jeg har bare brukt mysql fram til nå, det er derfor jeg ikke får til noe når det gjelder å skrive til en fil... EDIT: Du kan jo ikke vite at jeg ikke har mulighet til å forstå hvordan det gjøres hvis du forklarer meg, når du ikke har prøvd Endret 23. oktober 2004 av Tha_Zaynt Lenke til kommentar
Torbjørn Skrevet 23. oktober 2004 Del Skrevet 23. oktober 2004 javel. jeg vil benekte at jeg ikke har prøvd å forklare deg noe i denne tråden, hvorvidt jeg har et realistisk bilde av dine egenskaper som phpprogrammerer meneg jeg at jeg også har fått. men fra spøk til side. kan du forklare hva du ønsker at din whileløkke skal gjøre? Lenke til kommentar
Tha_Zaynt Skrevet 23. oktober 2004 Forfatter Del Skrevet 23. oktober 2004 Det jeg vil skal skje er at hvert innlegg blir nummerert i stigende rekkefølge... Lenke til kommentar
Tha_Zaynt Skrevet 28. oktober 2004 Forfatter Del Skrevet 28. oktober 2004 fant en liten kodesnutt i PHP FAQ'en som kanskje kan brukes til å liste opp innleggene i stigende rekkefølge...Hvis det da er mulig å lese av alle innleggene, dele inn hver linje i dokumentet i variabler og igejn sette disse inn i et array..? Noen som kan/har mulighet til å hjelpe meg å modifisere denne koden? <?php $arr = array('a','b','c','d','e'); for($i = 0; $i < sizeof($arr); $i++) { echo($arr[$i]); echo("<br>"); } ?> koden som skriver til filen ser altså sånn ut; if(!file_exists($filename)) { touch($filename); } $gamle_innlegg = file_get_contents($filename); $ny_tekst = $innlegg. "\n" .$gamle_innlegg; $file = fopen($filename, 'w'); fwrite($file, $ny_tekst); fclose($file); 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å