3

10行ごとに、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

4 に答える 4

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

参照:

于 2010-10-14T14:51:43.690 に答える
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>";
于 2010-10-14T14:49:13.493 に答える
0

簡単なグーグル検索で:

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

ファイルを 1 行ずつ読み取る

fgets() 関数は、ファイルから 1 行を読み取るために使用されます。

注: この関数を呼び出した後、ファイル ポインタは次の行に移動しています。

W3 スクールの例:

以下の例

ファイルの終わりに達するまで、ファイルを 1 行ずつ読み取ります。

<?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に達したら、必要なことを行います。

于 2010-10-14T14:48:30.100 に答える
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;
  }
}
于 2010-10-14T14:50:07.007 に答える