显示文件的多行,从不重复

时间:2010-10-14 14:40:37

标签: php lines

我需要,每十行,在div中回显它们。

示例:

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

有没有人知道这样做的方法?

数组来自file(),因此它来自文件。

4 个答案:

答案 0 :(得分:3)

这应该有效:

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

参考文献:

答案 1 :(得分:1)

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>";

答案 2 :(得分:0)

使用快速谷歌搜索:

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

逐行读取文件

fgets()函数用于从文件中读取单行。

注意:调用此函数后,文件指针已移至下一行。

W3学校的例子:

以下示例

逐行读取文件,直到到达文件末尾:

<?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);
?>

您需要做的就是让您的计数变量在while循环中最多计数10。一旦达到10,就做你需要做的事。

答案 3 :(得分:0)

假设你的线条在你正在回应的数组中,这样的东西就可以了:

$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;
  }
}