Comunidad de diseño web y desarrollo en internet online

Lector de Noticias con archivos de texto (sin DB) en PHP

Citar            
MensajeEscrito el 20 May 2010 07:36 pm
Hola, se que el problema que tengo lo han tratado por mucho tiempo y de varias maneras pero curiosamente no he encontrado algo que me ayude a superar este lio en que me encuentro, el tema "Paginacion", consegui un codigo sencillo y lo adapte a mi pequeño proyecto, un lector de noticias (lee archivos TXT de una carpeta del servidor), pero como soy novato en el tema, tome las lineas de codigo y las comente para entender que estaba haciendo, el code funciona bien, pero quise paginarle y no he podido, un amigo me sugirio el phppaging, y no lo se adaptar al proyecto, muy confuso para mi, he decidido despues de muchas horas de busqueda, ensayo y error; acudir a su ayuda para que me echen una manito guiandome de como hacer la paginacion, entiendo poco de php pero hago el esfuerzo de encontrar la guia, aca dejo el codigo comentado para que vean como voy:

Código PHP :

<?php
   $listaNOTICIAS = array();   
   //Abrimos la carpeta donde se encuentran los archivos de noticias
   if ($Carpeta = opendir("noticias")) {
      //Leemos todos los archivos que esten ahi
      while ($ficheroTXT = readdir($Carpeta))  {
        if (!is_dir($ficheroTXT)) {
        $listaNOTICIAS[] = $ficheroTXT;
           }
      }
   }   
//Invertimos el orden de los archivos leidos
rsort($listaNOTICIAS);
return $listaNOTICIAS;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title>Noticias</title></head><body>
<?php 
     // A continuacion Mostramos los resultados en la pantalla   
     //Llamamos el array creado anteriormente "NuevoListado();"
     $listado = NuevoListado();     
     //Llamamos uno a uno los archivos de la carpeta
      foreach ($listado as $noticia) {     
      //Abrimos la carpeta donde se encuentran los archivos de noticias
         $Archivo = file("noticias/".$noticia);                  
         $ContenidoNoticia = "";
     //Abrimos y leemos archivo por archivo
         foreach ($Archivo as $lectura) {
       $ContenidoNoticia .= $lectura;
         } 
    //Imprimimos
    echo "<div class='Titulo'>".$TituloNoticia."</div>\n"; 
    echo "<div class='Noticia'>".$ContenidoNoticia."</div>\n<hr size='1'/>\n\n";      
       }
?>
</body></html>

Por xavierlight

1 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 21 May 2010 03:42 pm
Te recomendaria algo como:

Código PHP :

<?php 
function NuevoListado(){
   $listaNOTICIAS = array();    
   //Abrimos la carpeta donde se encuentran los archivos de noticias 
   if ($Carpeta = opendir("noticias")) { 
      //Leemos todos los archivos que esten ahi 
      while ($ficheroTXT = readdir($Carpeta))  { 
        if (!is_dir($ficheroTXT)) { 
        $listaNOTICIAS[] = $ficheroTXT; 
           } 
      } 
   }    
//Invertimos el orden de los archivos leidos 
rsort($listaNOTICIAS); 
$size=count($listaNOTICIAS);
return array_splice($listaNOTICIAS,($size)-($size-2));
} 
?>

Por Xer0s

Claber

276 de clabLevel

3 tutoriales

 

Colombia

chrome
Citar            
MensajeEscrito el 21 May 2010 04:40 pm
Xer0s muchas gracias por tu respuesta, me la podrias explicar, gracias :oops:

Por xavierlight

1 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 21 May 2010 05:21 pm

Código PHP :

$size=count($listaNOTICIAS); 

Saca el numero de matrices del array

Código PHP :

return array_splice($listaNOTICIAS,($size)-($size-2));

Esto "recorta" el array ListaNOTICIAS, segun un pequeño algoritmo que puedes cambiar a tu gusto...
http://php.net/manual/es/function.array-splice.php

Por Xer0s

Claber

276 de clabLevel

3 tutoriales

 

Colombia

chrome
Citar            
MensajeEscrito el 21 May 2010 05:52 pm
:o ooooh, ya comprendo, claro, la funcion count cuenta el numero de archivos en el array y luego array_splice me resta un numero determinado (como en el ejemplo 2) al array ListaNOTICIAS, pero ahi es donde radica mi duda, como hago para imprimir estos resultados y se vea un estilo de navegacion, anterior...345...siguiente, este es el link aca vemos el array mostrando 11 de 13 noticias, para que nuestros amigos vean como vamos en el tema.

Por xavierlight

1 de clabLevel



 

Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.