<?/*1) 1 2 3 *4 5 6 72) *1 2 3 4 5 6 7 ... 29 303) 1 2 ... 24 25 26 27 28 *29 304) 1 2 ... 11 12 13 *14 15 16 17 ... 29 30*/function pa($s,$f,$m) { $r="<!-- $s,$f,$m -->\n"; for ($i=$s; $i<=$f; $i++) { if ($i==$m) { $r.=" $i"; } else { $r.=" [<a href=\"?m=$i\">$i</a>]"; }; }; return $r;};function pg($n,$m=1){ $r=""; /* numero de paginas até 9 */ /* 1 */ if ($n<=9) { $r.=pa(1,$n,$m); } else { /* número de páginas maior que 7, três possibilidades */ /* 2) a página atual esta entre os 7 primeiros */ if ($m<=7) { /* até o 7 */ $r.=pa(1,8,$m); /* acima de 7 coloca os dois ultimos */ $r.=" ... [<a href=\"?m=".($n-1)."\">".($n-1)."</a>] [<a href=\"?m=$n\">$n</a>]"; } else { /* 3) página atual esta entre os 7 ultimos */ if ($m>=($n-6)) { /* os dois primeiros */ $r.="[<a href=\"?m=1\">1</a>] [<a href=\"?m=2\">2</a>] ..."; /* o fim */ $r.=pa(($n-7),$n,$m); } else { /* 4) pagina atual esta entre o 8 eo $n-7 */ /* o inicio */ $r.="[<a href=\"?m=1\">1</a>] [<a href=\"?m=2\">2</a>] ..."; /* o meio ... */ $r.=pa(($m-3),($m+3),$m); /* o fim */ $r.=" ... [<a href=\"?m=".($n-1)."\">".($n-1)."</a>] [<a href=\"?m=$n\">$n</a>]"; }; }; }; return $r;};$m=1;if (isset($_GET[m])) { $m=trim($_GET[m]);};echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title></title></head><body> <div align=\"center\"><br /><br /><br />\n". pg(20,$m)."\n </div></body></html>\n";?>