<? //1. Задаем переменные $items=430; $items_per_page=25; $pages_in_paginator=11; $paginator_offset=floor($pages_in_paginator/2); //2. Рассчитываем количество страниц. $page_count=ceil($items/$items_per_page); //3. Если не задана страница в гет параметре то мы ее приравниваем к нулю. if(!isset($_GET['page'])) $_GET['page']=0; $cur_page=intval($_GET['page']); if($cur_page>=$page_count)$cur_page=$page_count-1; //4. Рассчет первой страницы для вывода в пагинаторе $start_page_pagination=$cur_page-$paginator_offset; if($start_page_pagination<0)$start_page_pagination=0; //5. Рассчет последней страницы для вывода в пагинаторе $end_page_pagination=$start_page_pagination+$pages_in_paginator; if($end_page_pagination>=$page_count)$end_page_pagination=$page_count-1; if($end_page_pagination-$start_page_pagination<$pages_in_paginator && $page_count>$pages_in_paginator) { $end_page_pagination=$page_count-1; $start_page_pagination=$end_page_pagination-$pages_in_paginator; } ?> <a href='?page=0'><<</a> | <?if($cur_page-1>=0){?> <a href='?page=<?=$cur_page-1?>'><</a> | <? } for($i=$start_page_pagination;$i<=$end_page_pagination;$i++) { $style=""; $i1=$i+1; if($i==$cur_page) $style="style='color:red;'"; echo "<a href='?page=$i' $style> $i1</a> | "; } if($cur_page+1<$page_count-1) { ?> <a href='?page=<?=$cur_page+1?>'>></a> | <?}?> <a href='?page=<?=$page_count-1?>'>>></a>