Файл данных text.txt 1 Программирование 2 Программирование на PHP 3 Программирование на JavaScript 4 Программирование на ASP.NET 5 Программирование на Java 6 Программирование на Perl 7 Программирование на C++ 8 Программирование на Pascal 9 Программирование на Fortran 10 Программирование на Assembler Постраничная навигация <?php // Имя файла $filename = "text.txt"; // Число позиций на странице $pnumber = 3; // Открываем файл для чтения $bufer = file_get_contents($filename); // Находим все строки при помощи регулярного выражения preg_match_all("#([\d]+) ([^\n]+)(\n|$)#U", $bufer, $out, PREG_PATTERN_ORDER); // Формируем промежуточный массив for($i = 0; $i < count($out[1]); $i++) { $temp[] = trim($out[2][$i]); } // Проверяем передан ли номер текущей страницы if(isset($_GET['page'])) $page = $_GET['page']; else $page = 1; // Число страниц $total = count($temp); $number = (int)($total/$pnumber); if((float)($total/$pnumber) - $number != 0) $number++; $start = (($page - 1)*$pnumber + 1); $end = $page*$pnumber + 1; if($end > $total) $end = $total; // Выводим содержимое страниц for($i = $start; $i < $end; $i++) { echo $temp[$i]."<br>"; } // Постраничная навигация for($i = 1; $i <= $number; $i++) { // Если это произвольная страница if($i != $number) { if($page == $i) { echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] "; } else { echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[". (($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> "; } } // Если это последняя страница заменяем последнюю цифру // максимальным числом позиций в массиве $temp else { if($page == $i) { echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."] "; } else { echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[". (($i - 1)*$pnumber + 1)."-".($total - 1)."]</a> "; } } } ?>
|