Мне нужно, чтобы каждые десять строк эхо их в 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>
кто-нибудь знает способ сделать это?
array из файла (), поэтому его строки из файла.
Это должно работать:
$blocks = array_chunk(file('path/to/file'), 10); foreach($blocks as $number => $block) { printf('<div id="%d">%s</div>', $number+1, implode('<br/>', $block)); }
Рекомендации:
array_chunk()
printf()
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>";
С быстрым поиском google:
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); ?>
в<?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); ?>
Все, что вам нужно сделать, это иметь переменную подсчета, которая насчитывает до 10 в пределах цикла while. как только он достигнет 10, сделайте то, что вам нужно сделать.
Предполагая, что ваши строки находятся в массиве, который вы эхом, что-то вроде этого будет работать:
$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; } }