Tanner Ottinger
Tanner Ottinger

Reputation: 3060

displaying multiple lines of a file, never repeating

i need to, for every ten lines, echo them in a div.

example:

<div class='return-ed' id='1'>
line 1
line 2
...
line 9
line 10
</div>

<!-- next group of lines -->

<div class='return-ed' id='2'>
line 11
line 12
...
line 19
line 20
</div>

does anyone know a way to do this?

array is from file(), so its lines from a file.

Upvotes: 3

Views: 703

Answers (4)

Gordon
Gordon

Reputation: 316969

This should work:

$blocks = array_chunk(file('path/to/file'), 10);
foreach($blocks as $number => $block) {
    printf('<div id="%d">%s</div>', 
            $number+1, 
            implode('<br/>', $block));
}

References:

Upvotes: 3

Tim Lytle
Tim Lytle

Reputation: 17624

Assuming your lines are in an array that you're echoing, something like this would work:

$count = 0;
$div = 1;
foreach($lines as $line){ //or a for loop, whatever you're using
  if(0 == $count){
    echo "<div id='$div'>";
  }

  $count++;
  echo $line;

  if(10 == $count){
    echo "</div>";
    $count = 0;
  }
}

Upvotes: 0

webbiedave
webbiedave

Reputation: 48897

echo '<div class="return-ed" id="1">';
$lineNum = 0;
foreach ($lines as $line) {
    if ($lineNum && !($lineNum % 10)) {
        echo '</div><div class="return-ed" id="'.($lineNum/10+1).'">';
    }
    echo $line."<br />";
    $lineNum++;
}
echo "</div>";

Upvotes: 1

Ryan Ternier
Ryan Ternier

Reputation: 8804

With a quick google search:

http://www.w3schools.com/php/php_file.asp

Reading a File Line by Line

The fgets() function is used to read a single line from a file.

Note: After a call to this function the file pointer has moved to the next line.

Example from W3 Schools:

The example below

reads a file line by line, until the end of file is reached:

<?php
$file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
  {
  echo fgets($file). "<br />";
  }
fclose($file);
?>

All you need to do is have your counting variable that counts up to 10 within that while loop. once it hits 10, do what you need to do.

Upvotes: 0

Related Questions