Lo que tienes que hacer es buscar un puntero, es decir la posicion donde estas, luego delimitar un maximo de enlaces, entonces desde la posicion que estas le restas la mitad del numero maximo de enlaces y haces tu ciclo desde esa posicion hasta el tamanio total de enlaces, algo asi:
Código PHP:
$pagina = 15;
$maximo_enlaces = 10;
for( $i = 10; $i < $maximo_enlaces; $i++ ) {
echo $i;
}
Tienes que calcular usando floor para sacar el numero entero mas cercano.
Saludos.