Il for alla fine ci sta per farti vedere il funzionamento ipotizzando che clicchi sulla pagina successiva.

Codice PHP:
<?php

/**
 * Sistuisce il numero della pagina per i link della lista pagine
 */
function buildUrlPages($url$page) {
    
// Se deve restituire la pagina numero 1, quando
    // l'utente si trova nella pagina 2 elimina &page=1
    // dal link
    
if ($page <= 1) {
        return 
preg_replace(array("/&amp;page=(.*?)/is""/\?page=(.*?)/is"), ""$url);
    }
    
    
// Se l'url è pulito da variabili get
    // aggiunge ?page=[numero pagina]
    
if (strpos($url"?") === false) {
        return 
"{$url}?page={$page}";
    }
    
    
// Se l'url comprende query string
    // lo aggiunge in coda
    
return "{$url}&amp;page={$page}";
}

/**
 * Genera i link per le pagine di topics, userlist etc...
 */
function getListPages($count$perPage$page$url) {
    
// Se i risultati della pagina sono minori del numero di oggetti
    // da visualizzare per pagina ferma lo script visto che la pagina
    // da visualizzare è solo una
    
if ($count $perPage) {
        return;
    }
    
    
// Calcola il numero totale di pagine
    
$pages ceil($count $perPage);
    
    
// Stampa il numero di pagine
    
echo "Pagine ($pages):";
    
    
// Ritorna la pagina precedente
    // se mi trovo alla 2°+ pagina
    
if ($page 1) {
        echo 
" <a href='" buildUrlPages($url, ($page 1)) . "'>&laquo; Precedente</a";
    }
    
    
// Link per pagina, in questo caso 5
    // << Precedente 2 3 4 5  ... 10 Successiva >>
    
$linksPerPage 5;
    
    
// Pagine precedenti e Pagine successive
    // Per ottenere l'effetto << Precedente 1 ... 3 4 5 6 7 ... 10 Successiva >>
    
$prevPages $page floor($linksPerPage 2);
    
$nextPages $page floor($linksPerPage 2);
    
    
// Se $prevPages ritorna un numero negativo
    // Assegna la pagina 1
    
if ($prevPages <= 0) {
        
$prevPages 1;
        
$nextPages $prevPages $linksPerPage 1;
    }
    
    
// Impedisce di raggiungere un numero maggiore di pagine
    // rispetto a quelle calcolato dalla funzione
    
if ($nextPages $pages) {
        
$nextPages $pages;
        
$prevPages $pages $linksPerPage 1;
        if(
$prevPages <= 0) {
            
$prevPages 1;
        }
    }
    
    if (
$nextPages == 0) {
        
$nextPages $pages;
    }
    
    
// Prima pagina
    
if ($prevPages 1) {
        echo 
" <a href='" buildUrlPages($url1) . "'>1</a>";
        if((
$prevPages 1) != 1) {
            echo 
" ...";
        }
    }
    
    
// Pagina corrente e pagine precedenti e successive
    // nell'intervallo assegnato a $linksPerPage:
    //  2 3 4 <b>5</b> 5 6 7
    
for ($i $prevPages$i <= $nextPages; ++$i) {
        
$tplVar["i"] = $i;
        if(
$page == $i) {
            echo 
$i";
        } else {
            echo 
" <a href='" buildUrlPages($url$i) . "'>$i</a>";
        }
    }
    
    
// Ultima pagina
    
if ($nextPages $pages) {
        if ((
$nextPages 1) == $pages) {
            echo 
" ...";
        }
        echo 
" <a href='" buildUrlPages($url$pages) . "'>$pages</a>";
    }
    
    
// Pagina successiva
    
if ($page $pages) {
        echo 
" <a href='" buildUrlPages($url, ($page 1)) . "'>Successiva &raquo;</a>";
    }
}

$elementiTotali 10;
$elementiPerPagina 1;
$url "http://localhost/prova3.php?variabile=inutile&ampseconda=inutile"// o semplicemente http://localhost/prova3.php
for ($paginaAttuale 1$paginaAttuale <= 10$paginaAttuale++) {
    
getListPages($elementiTotali$elementiPerPagina$paginaAttuale$url);
    echo 
"<hr>";
}
?>