Buenas tengo un problema a la hora de paginar , la paginación me funciona perfectamente pero el problema viene cuando se juntan 50 paginas o mas que queda bastante mal y desorganizado, y lo que quería era hacer algo parecido a esto 
 1 2 3 4 5 ... >  >> 
<<  < ... 10 11 
12 13 14 ... >  >> 
<< < ... 46 47 48 49 
50 
estando en negrita la pagina en la que estoy ,pero no lo consigo, no hay forma.
Si alguien se anima a echarme una mano.
Os dejo el codigo que tengo actualmente:  
 Código PHP:
    <?php
//Limito los resultados
$TAMANO_PAGINA = 15;
 
//Examino la página a mostrar y el inicio del registro a mostrar.
$pagina = $_GET["pagina"];
if (!$pagina) 
{
    $inicio = 0;
    $pagina=1;
}
else 
{
    $inicio = ($pagina - 1) * $TAMANO_PAGINA;
}
?>    
   Código PHP:
    <?php
//Paginacion
echo "<center>";
        if ($total_paginas > 1)
        {
        $pagina_anterior=$_GET['pagina']-1;
        $pagina_siguiente=$_GET['pagina']+1;
        
        echo "<b><font color='#FFFFFF' size='-1'><a href='index.php?pagina=1></b> << </a></font>   ";
        echo "<b><font color='#FFFFFF' size='-1'><a href='index.php?pagina=".$pagina_anterior."></b> < </a></font>   ";
             
            for ($i=1;$i<=$total_paginas;$i++)
             {
                   if ($pagina == $i)
                  echo "<b><font size='+1' color='black'>".$pagina . "</font></b>   ";
                  else
                  echo "<b><font color='#FFFFFF' size='-1'><a href='index.php?pagina=". $i ."&id_cliente=".$id_cliente."></b>". $i ."</a></font>   ";
             }
            
        echo "<b><font color='#FFFFFF' size='-1'><a href='index.php?pagina=".$pagina_siguiente."></b> > </a></font>   ";
        echo "<b><font color='#FFFFFF' size='-1'><a href='index.php?pagina=".$total_paginas."></b> >> </a></font>   ";
        
        }
        echo "</center>";