Ejemplo
[CÓDIGO PHP]
$pagina=(isset($_GET['pag']))?$_GET['pag']:15;
$paginas=(isset($_GET['total']))?$_GET['total']:50;
$pagVisible =(isset($_GET['visible']))?$_GET['visible']:4; /* Ademas de la pagina actual
/* PRIMERA PÁGINA */
if ($pagina > ($pagVisible/2)+1) echo "<a href='?pag=1' > 1 > /a< ... ";
for($p=1;$p <= $paginas;$p++) {
if ($pagina-1> $pagVisible/2) {
if ($pagina > ($paginas - $pagVisible/2) && ($p < $paginas -$pagVisible)) continue;
if ($p < ($pagina-$pagVisible/2) && ($paginas > =($pagina+$pagVisible/2))) continue;
if ($p> ($pagina+$pagVisible/2)) break;
} else {
if ($p > $pagVisible+1) break;
}
echo ($p==$pagina)?"<b> ".$p." </b> ":"<a href='?pag=".($p)."'> $p </a> ";
}
/* FIN DEL BUCLE FOR */
/* ÚLTIMA PÁGINA */
if ($pagina< $paginas-($pagVisible/2)) echo " .... <a href='?pag=".($paginas)."'> $paginas </a> ";