Gjest Slettet-IHWlGMJn Skrevet 28. februar 2008 Rapporter Del Skrevet 28. februar 2008 (endret) Jah.. saken er altså at jeg skal hente en tilfeldig linje(Som kun har tekst) fra en fil(text.txt) og skrive ut denne linjen. Dette skriptet fungerer, men jeg er overhode ikke no god med php så jeg kan ikke tenke meg at dette er i nærheten av en bra måte å gjøre det på. Har ikke klart å finne en enkel måte å lese hvor mange linjer det er i en fil så derfor behandler jeg fila to ganger... teller altså linjene den første gangen og velger en linje og skriver ut neste gang Hadde vært fint om noen kunne gi meg tips til forbedringer(Om det går an å forbedre noe uten å skrive et helt nytt script) Og forresten. Kan noen forklare meg hva som egentlig skjer i "rand() % $count+1". Dette var egentlig noe jeg bare prøvde og fant ut at det fungerte :S Takker for svar <? $filename = "text.txt"; $handle = @fopen($filename, "r"); if ($handle) { $count = 0; while (!feof($handle)) { $count++; $buffer = fgets($handle, 4096); } fclose($handle); } $handle = @fopen($filename, "r"); if ($handle) { $ran = rand() % $count+1; $i = 1; while (!feof($handle)) { $buffer = fgets($handle, 4096); if($i==$ran){ echo "$buffer"; } $i++; } fclose($handle); } ?> Endret 28. februar 2008 av Slettet-IHWlGMJn Lenke til kommentar
Martin A. Skrevet 28. februar 2008 Rapporter Del Skrevet 28. februar 2008 <?php $fil = file( 'fil.txt' ); $rand_line = array_rand( $fil ); echo $fil[ $rand_line ]; ?> Lenke til kommentar
Gjest Slettet-IHWlGMJn Skrevet 28. februar 2008 Rapporter Del Skrevet 28. februar 2008 (endret) Hahahahahaha Bra noen har peiling... Takker Endret 28. februar 2008 av Slettet-IHWlGMJn Lenke til kommentar
Martin A. Skrevet 28. februar 2008 Rapporter Del Skrevet 28. februar 2008 Er verdt å merke seg at koden ikke tar høyde for tomme linjer. Får du en tom linje, vil den tomme linjen printes ut. (Den er egentlig ikke tom, men innholder linefeed(\n) og/eller carriage return(\r) ) Lenke til kommentar
Peter Skrevet 29. februar 2008 Rapporter Del Skrevet 29. februar 2008 For ikke å snakke om at dersom du jobber med virkelig store filer, f.eks. skattelistene, så er du ute på dypt vann med file() ettersom den legger hele filen i minnet. Lenke til kommentar
Gjest Slettet-IHWlGMJn Skrevet 29. februar 2008 Rapporter Del Skrevet 29. februar 2008 For ikke å snakke om at dersom du jobber med virkelig store filer, f.eks. skattelistene, så er du ute på dypt vann med file() ettersom den legger hele filen i minnet. Er ikke snakk om mange linjene for min del. Rundt 350stk Har du et annet alternativ som fungerer bedre ved større filer da? 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å