Foros del Web » Programando para Internet » PHP »

Listar directorio

Estas en el tema de Listar directorio en el foro de PHP en Foros del Web. Hola gente, soy nuevo aqui en el foro, y queria compartir con ustedes un codigo muy util, pero a la ves pedir una ayudita... Con ...
  #1 (permalink)  
Antiguo 17/03/2008, 02:05
Avatar de chuliano  
Fecha de Ingreso: marzo-2008
Ubicación: C. de Patagones - Argentina
Mensajes: 21
Antigüedad: 16 años, 1 mes
Puntos: 0
Listar directorio

Hola gente, soy nuevo aqui en el foro, y queria compartir con ustedes un codigo muy util, pero a la ves pedir una ayudita...

Con este PHP lo que hago es listar el contenido de un directorio y hacer los enlaces a los archivos...

lo que no logrro hacer es que se ordenen en forma acendente o decendente por fecha de creacion...

alguien sabe como modificar el siguiente codigo para quelo haga?

Código PHP:
<?php 
echo '<link rel="stylesheet" type="text/css" href="estadisticas.css" />';
$dir "./backup_contador/"
$directorio=opendir($dir); 
//echo "<span class='texto_menu_Titulo'>Nombre del directorio - $dir</span>"; 
echo "<ab><b>:: Estadisticas de visitas<br></b></ab>"
echo 
"<a href=estadisticas><b>:: ACTUALIZAR DIRECTORIO - $dir ::<br></b></a>"
echo 
"<br><br>"
echo 
"Ultimo archivo modificado: ".date"F d Y H:i:s."getlastmod() ); 
while (
$archivo readdir($directorio)){
 if(
$archivo=='index.php'|| $archivo=='.'|| $archivo=='..'){ 
 echo 
"";
 if(
$archivo==' '){ 
 echo 
"~";
  }
 }else { 
 
$enlace $dir.$archivo
 echo 
"<ul type='square'><li>"
 echo 
"<a href=$enlace class='menu'>$archivo<br></a>"
 
 echo 
"</li></ul>"

 } 
closedir($directorio); 
?>
  #2 (permalink)  
Antiguo 17/03/2008, 02:11
Avatar de chuliano  
Fecha de Ingreso: marzo-2008
Ubicación: C. de Patagones - Argentina
Mensajes: 21
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Listar directorio

porque por ejemplo, encontre este PHP que lista y ordena los archivos por fecha de creación.. pero como lo implemento con el que puse arriba????

Código PHP:
<?php 
function LoadFiles($dir,$filter="")
{
 
$Files = array();
 
$It =  opendir($dir);
 if (! 
$It)
  die(
'Cannot list files for ' $dir);
 while (
$Filename readdir($It))
 {
 if (
$Filename != '.' && $Filename != '..'  )
 {
  if(
is_dir($dir $Filename))
   {
   
$Files array_merge($FilesLoadFiles($dir $Filename.'/'));
   }
 else
 if (
$filter=="" || preg_match$filter$Filename ) )
   {
   
$LastModified filemtime($dir $Filename);
   
$Files[] = array($dir .$Filename$LastModified);
   }
   
  else
   continue;
  
 }
}
  return 
$Files;
}
function 
DateCmp($a$b)
{
  return  
strnatcasecmp($a[1] , $b[1]) ;
}

function 
SortByDate(&$Files)
{
  
usort($Files'DateCmp');
}

$Files LoadFiles("./backup_contador/");
SortByDate($Files);
reset($Files);
while (list(
$k,$v) =each($Files))
 {
 
?> - <?=$v[0]?> <?= date('Ymd h:i',$v[1])?></li><?
 


?>
  #3 (permalink)  
Antiguo 17/03/2008, 02:13
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Re: Listar directorio

Mirate estos enlaces, puede ser que te ayuden a resolver el problema.

http://www.forosdelweb.com/f18/como-...cacion-463776/

http://www.deerme.org/?sec=php&sub=Tips&id=27

  #4 (permalink)  
Antiguo 17/03/2008, 02:21
Avatar de chuliano  
Fecha de Ingreso: marzo-2008
Ubicación: C. de Patagones - Argentina
Mensajes: 21
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Listar directorio

Gracias!, voy a mirarlo a ver si logro implementarselo a mi PHP.

Es que soy nuevo en esto no tengo mucha idea... estoy a prueba y error..

un saludo y vere si me sale!
  #5 (permalink)  
Antiguo 17/03/2008, 03:55
Avatar de chuliano  
Fecha de Ingreso: marzo-2008
Ubicación: C. de Patagones - Argentina
Mensajes: 21
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Listar directorio

No hay manera, logro hacerlo funcionar, perono que me haga un enlace a cada archivo y le de formato como en mi PHP.

Si alguein me puede ayudar y retocar mi codigo se lo agradecere
  #6 (permalink)  
Antiguo 17/03/2008, 06:18
Avatar de chuliano  
Fecha de Ingreso: marzo-2008
Ubicación: C. de Patagones - Argentina
Mensajes: 21
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Listar directorio

Bueno, lo he logrado, funciona perfectamente. aca les dejo el archivo final.. si a alguien le es util que agradesca...

Código PHP:
<?php 
echo '<link rel="stylesheet" type="text/css" href="estadisticas.css" />';
$dir "./backup_contador/"
$directorio=opendir($dir); 
$ultimo_modificadodate"F d Y H:i:s."getlastmod() ); 
$i=0;
echo 
"<ab><b>:: Estadisticas de visitas a chucao.com/com.ar<br></b></ab>"
echo 
"<a href=estadisticas><b>:: ACTUALIZAR DIRECTORIO - $dir ::<br></b></a>"
echo 
"<pre><b>:: Ultima entrada: $ultimo_modificado<br></b></pre>";
/////////////////////////
function sortByTime($a$b)
    { if (
$a["time"] == $b["time"])
return 
0;
return (
$a["time"] > $b["time"]) ? -1; }
    if(
$elarchivo opendir($dir))
    {
        while (
false != ($file readdir($elarchivo)))
        {
        if (
$file != "." && $file != ".."$files[] = array("file" => $file"time" => filectime("./backup_contador/".$file));
        }
        
usort($files"sortBytime");
        
            while (list(,
$filearr) = each($files))
            {

 
$fecha_archivo filectime($dir.$archivo);
 
$i++;
 
$enlace $filearr["file"];
 
 echo 
"<ul type='square'><li>"
 echo 
"<a href=$enlace class='menu'>$i - $enlace</a>";
 echo 
"</li></ul>";


/////////////////////////
closedir($directorio); 
?>

PD: si deseo agregar en un titulo el nombre de un archivo que recoja del final del PHP como se hace??? por ejemplo para que en el titulo me muestre el nombre del ultimo archivo creado.. pero que aparesca arriba del todo en el archivo
Código HTML:
echo "<pre><b>:: Ultima entrada: $ultimo_modificado $enlace<br></b></pre>";

Última edición por chuliano; 17/03/2008 a las 06:26
  #7 (permalink)  
Antiguo 31/03/2008, 16:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años
Puntos: 5
Re: Listar directorio

Gracias por dejarnos tu código final, ahora le doy una hojeada :D

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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 00:23.