<?php /* *постраничная навигация в скриптах на файлах *автор: nc_soft *18.09.07 */ /*сгенерируем массив (для гостевой этот массив может быть получен как file('gb.dat') ) в данном случаи проэмулируем его массивом 1,2,3...100 */ $arr=range(1,100); //всего сообщений $all=count($arr); //число сообщений на странице $pnumber=5; echo '<p>всего элементов: '.$all.'</p>'; //номер страницы $page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1; //число страниц $num_pages=ceil($all/$pnumber); //начальная позиция $start=$page*$pnumber-$pnumber; //проверка номера страницы if ($page > $num_pages || $page < 1) { $page=1; $start=0; } if ($all) { //элементы выводятся в обратном порядке!! for ($i=$all-$start-1; $i>=$all-$start-$pnumber; $i--) { if (!isset($arr[$i])) break; echo '<p>'; echo $arr[$i]; echo '</p>'; } //навигация echo '<p>'; for($pr = '', $i =1; $i <= $num_pages; $i++) { echo $pr=(($i == 1 || $i == $num_pages || abs($i-$page) < 2) ? ($i == $page ? " [$i] " : ' <a href="'.$_SERVER['SCRIPT_NAME'].'?page='.$i.'">'.$i.'</a> ') : (($pr == ' ... ' || $pr == '')? '' : ' ... ')); } echo '</p>'; } else { echo '<p>элементов нет</p>'; } ?>