ZoRaC Skrevet 10. april 2005 Del Skrevet 10. april 2005 Har drevet å "forsket" på en funksjon som leser inn innholdet fra en tekst-fil og dette fungerer flott, men jeg kunne tenkt meg å hente ut bare en del av filen, men hvordan skal jeg få til det (fra linje x til y)? function read_txt($file) { $fp = @fopen($file, "r"); if (!$fp) return "Unknown"; while ($line = fgets($fp, 1024)) { $output .= nl2br($line); } fclose($fp); return $output; } Hvordan kan jeg kalle den med read_txt($file, $start_line, $end_line) og dermed bare lese ut de linjene? Prøvde meg litt frem, men fikk problemer hvis jeg ikke leste til siste linje i fila, siden nl2br la til en ekstra <br> på enden av den siste linja. Lenke til kommentar
toss Skrevet 10. april 2005 Del Skrevet 10. april 2005 er ikke sikker, men går det kanskje ann å bruke explode() til å dele teksten opp ved linjeskft, og så skrive ut de ønskede linjene fra arrayet? Lenke til kommentar
Lokaltog Skrevet 10. april 2005 Del Skrevet 10. april 2005 (endret) Hva med noe slikt: <?php function txt($file, $start, $end, $merge = true) { $c = file($file); if(!empty($c)) { foreach($c as $k => $i) { if((int)$k > $start && (int)$k < $end) { $ret[] = $i; } } if($merge) { return implode("\r\n",$ret); } else { return $ret; } } else return false; } ?> Utestet kode, garanterer ikke at den er bugfri. Edit: kan eventuelt brukes slik: <?php $lines = txt('fil.txt', 20, 35); echo $lines; // Vil printe ut linjene $lines = txt('fil.txt', 20, 35, false); // Her vil $lines være et array der hver linje er et element i arrayet ?> Endret 10. april 2005 av Lokaltog 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å