Foros del Web » Programando para Internet » PHP »

Opinion y ayuda con paginacion de un texto

Estas en el tema de Opinion y ayuda con paginacion de un texto en el foro de PHP en Foros del Web. Buenas!!! Haver... he echo este archivo de paginacion para texto y quiero saber como se puede mejorar o algo para retocar... Ademas me da unos ...
  #1 (permalink)  
Antiguo 05/12/2008, 13:53
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Opinion y ayuda con paginacion de un texto

Buenas!!!

Haver... he echo este archivo de paginacion para texto y quiero saber como se puede mejorar o algo para retocar...

Ademas me da unos notice: indefinid offset en esta linea ($texto[$i].=$partes_texto[$j];) y no se como resolverlo...

Código php:
Ver original
  1. Notice: Undefined offset: 0 in C:\Program Files (x86)\EasyPHP 2.0b1\www\new_web\Untitled1.php on line 33
  2.  
  3. Notice: Undefined offset: 1 in C:\Program Files (x86)\EasyPHP 2.0b1\www\new_web\Untitled1.php on line 33
  4.  
  5. Notice: Undefined offset: 2 in C:\Program Files (x86)\EasyPHP 2.0b1\www\new_web\Untitled1.php on line 33

Código php:
Ver original
  1. $temas=mysql_fetch_assoc($resultado);
  2.  
  3. (!isset($_GET["pagina"]))? $pagina=1:$pagina=$_POST["pagina"];
  4. $contar=0;
  5. for($ind=0;$ind<strlen($temas["contenido"]);$ind++)
  6. {
  7.     if($temas["contenido"][$ind]=="\n")
  8.     {
  9.         $contar++;
  10.     }
  11. }
  12.  
  13.    
  14. $partes_texto=explode("\n",$temas["contenido"],$contar);
  15. $pag=ceil(count($partes_texto)/10);
  16. $ini=0;
  17. $fin=10;
  18. $texto=array();
  19.    
  20. for($i=0;$i<$pag;$i++)
  21. {
  22.     for($j=$ini;$j<$fin;$j++)
  23.     {
  24.         if(isset($partes_texto[$j]))
  25.         {
  26.             $texto[$i].=$partes_texto[$j];
  27.         }
  28.     }
  29.     $ini=$j;
  30.     $in=$i+1;
  31.     $fin=($in+1)*10;
  32. }
  33. echo BBCode($texto[$pagina-1]);
  #2 (permalink)  
Antiguo 05/12/2008, 14:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Opinion y ayuda con paginacion de un texto

Para prevenir los Notices, tienes que usar isset, para comprobar que existe la parte de $texto[].

Saludos.
  #3 (permalink)  
Antiguo 06/12/2008, 05:54
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Opinion y ayuda con paginacion de un texto

Gracias por la ayuda... al final los Notices los resolvi declarando en blanco la el valor de la posicion de la array y despues concatenar...

Por si a alguien le interesa dejo el codigo...

Código PHP:
Ver original
  1. <?php
  2. define("MAX", 10);
  3. function particionar_texto($texto)
  4. {
  5.     $contar=0;
  6.     for($ind=0;$ind<strlen($texto);$ind++)
  7.     {
  8.         if($texto[$ind]=="\n")
  9.         {
  10.             $contar++;
  11.         }
  12.     }
  13.  
  14.     $partes=explode("\n",$texto,$contar);
  15.     return($partes);
  16. }
  17.  
  18. function paginas($texto)
  19. {
  20.    
  21.     $pag=ceil(count(particionar_texto($texto))/MAX);
  22.     return($pag);
  23. }
  24.  
  25. function paginar_texto($texto_completo, $pagina)
  26. {
  27.     $ini=0;
  28.     $fin=MAX;
  29.     $texto=array();
  30.  
  31.     $partes_texto=particionar_texto($texto_completo);
  32.     $pag=paginas($texto_completo);
  33.  
  34.     for($i=0;$i<$pag;$i++)
  35.     {
  36.         $texto[$i]="";
  37.         for($j=$ini;$j<$fin;$j++)
  38.         {
  39.             if(isset($partes_texto[$j]))
  40.             {
  41.                 $texto[$i].=$partes_texto[$j];
  42.             }
  43.         }
  44.         $ini=$j;
  45.         $in=$i+1;
  46.         $fin=($in+1)*MAX;
  47.     }
  48.     return($texto[$pagina-1]);
  49. }
  50. ?>

PD: SALUDOS!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:46.