Código PHP:
<?php
/// Opciones gal,file o dir ///
$p_mode="file";
$p_cols="3";
$p_ruta_images="imagenes/banners";
$p_ruta_file="ejemplo.txt";
$p_ruta_dir="db_p/db_productos";
$p_number_elementos_pag="6";
$p_grupos_paginados="3";
///
?>
<?php
if ($p_mode=="file")
{
$p_file=file("".$p_ruta_file."");
$p_n_elements=0;
for($p=0;$p<sizeof($p_file);$p++)
{
$f_files[]=$p_file[$p];
$p_n_elements++;
}
}
?>
<?php
if ($p_mode=="gal" or $p_mode=="dir")
{
if ($p_mode=="gal")
{
$p_dir="".$p_ruta_images."";
}
else
{
$p_dir=="".$p_ruta_dir."";
}
$p_n_elements=0;
$p_dir=opendir($p_dir);
while($file=readdir($p_dir))
{
if ($file!="." && $file!=".." && $file!=".htaccess" && $file!="index.html" && $file!="Thumbs.db" && $file!="config.dat")
{
$p_n_elements++;
}
}
closedir($p_dir);
}
?>
<?php
$p_number_elements="".$p_n_elements."";
$p_totales=ceil($p_number_elements/$p_number_elementos_pag);
$pag="".$_REQUEST['pag']."";
?>
<?
$back_total="<a href=?pag=1> <<</a>";
$next_total="<a href=?pag=$p_n_elements> >></a>";
?>
<?php
if ($p_totales<$p_grupos_paginados)
{
$p_grupos_paginados="$p_totales";
}
else
{
$p_grupos_paginados="$p_grupos_paginados";
}
/// Si la página es cero ///
if ($pag==0 or $pag=="" or $pag<0 or $pag==1)
{
$p_ini=1;
$p_end="".$p_grupos_paginados."";
$p_ini_e="1";
$p_end_e="".$p_number_elementos_pag."";
$back="";
$next='<a href=?pag='.($pag+1).'>> </a>';
}
///
/// Si páginas superan el total ///
if ($pag>=$p_totales)
{
print "mayor";
$p_ini="".($p_totales)-($p_grupos_paginados)+(1)."";
$p_end="".$p_totales."";
$p_ini_e="".($p_n_elements)-($p_number_elementos_pag)+(1)."";
$p_end_e="".$p_n_elements."";
$back='<a href=?pag='.($pag-1).'>< </a>';
$next="";
}
///
if ($pag>1 && $pag<$p_totales)
{
//if (($pag)+($p_grupos_paginados)>=$p_totales)
if ($pag>=$p_totales)
{
$p_ini="".($p_totales-$p_grupos_paginados)+(1)."";
$p_end="".$p_totales."";
$back='<a href=?pag='.($pag-1).'>< </a>';
$next='<a href=?pag='.($pag+1).'>> </a>';
$p_ini_e="".($p_n_elements)-($p_number_elementos_pag)+(1)."";
$p_end_e="".$p_n_elements."";
}
else
{
if (($pag)+($p_grupos_paginados)>=$p_totales)
{
$p_ini="".($p_totales)-($p_grupos_paginados)+(1)."";
$p_end="".$p_totales."";
}
else
{
$p_ini="".($pag)."";
$p_end="".($p_ini)+($p_grupos_paginados)-(1)."";
}
if (($pag)*($p_number_elementos_pag)>$p_n_elements)
{
$p_ini_e="".($p_n_elements)-($p_number_elementos_pag)+(1)."";
$p_end_e="".$p_n_elements."";
}
else
{
$p_end_e="".($pag)*($p_number_elementos_pag)."";
$p_ini_e="".($p_end_e)-($p_number_elementos_pag)+(1)."";
}
$back='<a href=?pag='.($pag-1).'>< </a>';
$next='<a href=?pag='.($pag+1).'>> </a>';
}
}
?>
<?php
print "<table width=50% border=0 cellpadding=0 cellspacing=1 align=center valign=middle>
<tr>
<td align=center valign=middle colspan=$pages>
</td>
</tr><tr>";
?>
<?php
$x=$p_ini_e-1;
$j=0;
echo "<b>$p_ini_e $p_end_e</b>";
for($i=$p_ini_e;$i<=$p_end_e;$i++)
{
print "<td align=center valign=middle>";
echo $f_files[$x];
print "</td>";
if (($j+1)%$p_cols==0)
{
print "</tr>";
}
$j++;
$x++;
}
print "</table>";
?>
<?php
echo $back_total;
echo $back;
for($i=$p_ini;$i<=$p_end;$i++)
{
print "<a href=?pag=".$i.">".$i."</a> ";
}
echo $next;
echo $next_total;
?>
Ahí pongo el código en breve pondré todo el script , ya no tira fallos el problema era que había que poner una variable más le puse $j=0; así pagina en base a eso y ya corta bien las cuentas de cada vuelta , el script funciona bien en breve lo pongo completo asi quien quiera que lo use pero podrá leer y paginar fotos , archivos de directorios con un include si se quieres para el archivo y desde un txt
En cuanto a la paginación programada permite que se pagine pues según las páginas que consten pero podemos agrupar las páginas en grupos y luego determinar cuantas entradas se muestran por página
En este día lo pongo completo
No obstante cualquiera que le vea algo pues lo podemos mejorar , creo que es un script muy útil para hacer de todo
Saludos !