Gå til innhold

Hente ut fra linje x til y i text-fil


Anbefalte innlegg

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
Videoannonse
Annonse

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 av Lokaltog
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...