comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Listar carpetas y archivos en PHP

  • 16 Respuestas
  • 6891 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« en: Junio 28, 2013, 04:31:56 am »
Hola a todos , lo que quiero es poder listar el contenido de una carpeta que se llama CURSOS, suponiendo que la estructura sea :

CURSOS/CURSO1/INFO.TXT
CURSOS/CURSO1/DOC.TXT
CURSOS/CURSO1/PPT.TXT
CURSOS/CURSO1/PDF.TXT

CURSOS/CURSO2/INFO.TXT
CURSOS/CURSO2/DOC.TXT
CURSOS/CURSO2/PPT.TXT
CURSOS/CURSO2/PDF.TXT

Quiero que me lista el nombre de la carpeta y los archivos que estan dentro de ella , pero no se como hacerlo , espero me puedan ayudar

Gracias a todos
« Última modificación: Marzo 22, 2014, 01:51:58 pm por Expermicid »

Desconectado D4rkC0d3r

  • *
  • Underc0der
  • Mensajes: 202
  • Actividad:
    0%
  • Reputación 0
  • \xeb\x16\x5e\x31\xd2\
    • Ver Perfil
    • Ethical Hacking, Malware Analysis, Disinfection Techniques and more...
« Respuesta #1 en: Junio 28, 2013, 04:54:24 am »
Hola Only, con respecto a tu duda tal vez te pueda servir algo así:

Código: PHP
  1. <?php
  2.     $dir = (You are not allowed to view links. Register or Login($_GET['dir']))?$_GET['dir']:"/";
  3.     $directorio=You are not allowed to view links. Register or Login($dir);
  4.     echo "<b>Directorio actual:</b><br>$dir<br>";
  5.     echo "<b>Archivos:</b><br>";
  6.     while ($archivo = You are not allowed to view links. Register or Login($directorio))
  7.     {
  8.         if($archivo == '.')
  9.             echo "<a href=\"?dir=.\">$archivo</a><br>";
  10.         elseif($archivo == '..')
  11.         {
  12.             if($dir != '.')
  13.             {
  14.                 $carpetas = You are not allowed to view links. Register or Login("/",$dir);
  15.                 You are not allowed to view links. Register or Login($carpetas);
  16.                 $dir2 = You are not allowed to view links. Register or Login("/",$carpetas);
  17.                 echo "<a href=\"?dir=$dir2\">$archivo</a><br>";
  18.             }
  19.         }
  20.         elseif(You are not allowed to view links. Register or Login("$dir/$archivo"))
  21.             echo "<a href=\"?dir=$dir/$archivo\">$archivo</a><br>";
  22.         else echo "$archivo<br>";
  23.     }
  24.     You are not allowed to view links. Register or Login($directorio);
  25. ?>
  26.  

Saludos!!  :D
« Última modificación: Marzo 27, 2014, 05:26:55 pm por Expermicid »

D4rkC0d3r

Conectado arthusu

  • *
  • Underc0der
  • Mensajes: 535
  • Actividad:
    8.33%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« Respuesta #2 en: Junio 28, 2013, 04:56:28 am »
este video: You are not allowed to view links. Register or Login  del amigo hckdrk tambien sirve :D

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« Respuesta #3 en: Junio 28, 2013, 05:11:08 am »
You are not allowed to view links. Register or Login
Hola Only, con respecto a tu duda tal vez te pueda servir algo así:

Código: You are not allowed to view links. Register or Login
<?php
    $dir 
= (isset($_GET['dir']))?$_GET['dir']:"/";
    
$directorio=opendir($dir); 
    echo 
"<b>Directorio actual:</b><br>$dir<br>"
    echo 
"<b>Archivos:</b><br>"
    while (
$archivo readdir($directorio))
    { 
        if(
$archivo == '.')
            echo 
"<a href=\"?dir=.\">$archivo</a><br>"
        elseif(
$archivo == '..')
        { 
            if(
$dir != '.')
            { 
                
$carpetas split("/",$dir); 
                
array_pop($carpetas); 
                
$dir2 join("/",$carpetas); 
                echo 
"<a href=\"?dir=$dir2\">$archivo</a><br>"
            } 
        }
        elseif(
is_dir("$dir/$archivo"))
            echo 
"<a href=\"?dir=$dir/$archivo\">$archivo</a><br>"
        else echo 
"$archivo<br>"
    }
    
closedir($directorio); 
?>


Saludos!!  :D

Estoy probando tu codigo pero en que parte le especifico la carpeta a escanear?

You are not allowed to view links. Register or Login
este video: You are not allowed to view links. Register or Login  del amigo hckdrk tambien sirve :D

Ando checando el video bro muchas gracias

Desconectado D4rkC0d3r

  • *
  • Underc0der
  • Mensajes: 202
  • Actividad:
    0%
  • Reputación 0
  • \xeb\x16\x5e\x31\xd2\
    • Ver Perfil
    • Ethical Hacking, Malware Analysis, Disinfection Techniques and more...
« Respuesta #4 en: Junio 28, 2013, 05:27:01 am »
Hola Only, mira esta línea:

Código: You are not allowed to view links. Register or Login
     $dir = (isset($_GET['dir']))?$_GET['dir']:"/";

La carpeta que será analizada por el código para cargar los archivos que contiene se asigna en la variable $dir, la cual se supone recibe el valor a partir de una petición GET, en caso de que esa petición no se produzca, se da el valor por defecto que es la raíz "/", podrías dejarle también con una ruta absoluta o relativa, por ejm:

Código: You are not allowed to view links. Register or Login
    $dir = "/var/www/sitio/carpetaAMostrar";

Saludos!  :D

D4rkC0d3r

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« Respuesta #5 en: Junio 28, 2013, 06:07:10 am »
You are not allowed to view links. Register or Login
Hola Only, mira esta línea:

Código: You are not allowed to view links. Register or Login
     $dir = (isset($_GET['dir']))?$_GET['dir']:"/";

La carpeta que será analizada por el código para cargar los archivos que contiene se asigna en la variable $dir, la cual se supone recibe el valor a partir de una petición GET, en caso de que esa petición no se produzca, se da el valor por defecto que es la raíz "/", podrías dejarle también con una ruta absoluta o relativa, por ejm:

Código: You are not allowed to view links. Register or Login
    $dir = "/var/www/sitio/carpetaAMostrar";

Saludos!  :D

Gracias bro pero me marca error en la linea de SPLIT ya que segun php.net ya es obsoleta, otra cosa, solo me enlista las carpetas, pero no los archivos que estan dentro de las carpetas, espero me puedas ayudar

Gracias

Desconectado D4rkC0d3r

  • *
  • Underc0der
  • Mensajes: 202
  • Actividad:
    0%
  • Reputación 0
  • \xeb\x16\x5e\x31\xd2\
    • Ver Perfil
    • Ethical Hacking, Malware Analysis, Disinfection Techniques and more...
« Respuesta #6 en: Junio 29, 2013, 01:52:04 am »
Entonces puedes usar este otro script más simplificado, lo probé recién y si lista tanto archivos como carpetas del directorio actual (.), el cual en el ejemplo lo mando como dato por defecto, tu puedes modificar el código para que sea recibido a través de un formulario, y lo que se hace para diferenciar entre archivos y carpetas, es que estas últimas se muestran entre corchetes.

Código: PHP
  1. <?php
  2. $directorio = You are not allowed to view links. Register or Login("."); //Ruta a tomar para listar es el directorio actual por defecto
  3. while ($archivo = You are not allowed to view links. Register or Login($directorio))
  4. {
  5.     if (You are not allowed to view links. Register or Login($archivo))
  6.     {
  7.         echo '<a href="'.$archivo.'">['.$archivo . ']</a><br />';              
  8.     }
  9.     else
  10.     {
  11.         echo '<a href="'.$archivo.'">'.$archivo . '</a><br />';
  12.     }
  13. }
  14. ?>
  15.  
« Última modificación: Marzo 27, 2014, 05:27:13 pm por Expermicid »

D4rkC0d3r

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« Respuesta #7 en: Julio 01, 2013, 10:26:24 am »
You are not allowed to view links. Register or Login
Entonces puedes usar este otro script más simplificado, lo probé recién y si lista tanto archivos como carpetas del directorio actual (.), el cual en el ejemplo lo mando como dato por defecto, tu puedes modificar el código para que sea recibido a través de un formulario, y lo que se hace para diferenciar entre archivos y carpetas, es que estas últimas se muestran entre corchetes.

Código: You are not allowed to view links. Register or Login
<?php
$directorio 
opendir("."); //Ruta a tomar para listar es el directorio actual por defecto
while ($archivo readdir($directorio))
{
    if (
is_dir($archivo))
    {
        echo 
'<a href="'.$archivo.'">['.$archivo ']</a><br />';
    }
    else
    {
        echo 
'<a href="'.$archivo.'">'.$archivo '</a><br />';
    }
}
?>


Lo acabo de probar bro y solo me lista las carpetas , pero los archivos que estan dentro de esas carpetas no los enlista, espero me puedas ayudar a hacer eso. Gracias
You are not allowed to view links. Register or Login

Desconectado Xt3mP

  • *
  • Underc0der
  • Mensajes: 432
  • Actividad:
    0%
  • Reputación 0
  • Ellos me están buscando, pero yo los encontraré.
    • MSN Messenger - Xt3mP@h4x0rz.us
    • AOL Instant Messenger - Xt3mP@h4x0rz.us
    • Yahoo Instant Messenger - Xt3mP@h4x0rz.us
    • Ver Perfil
    • Xt3mP
« Respuesta #8 en: Julio 03, 2013, 05:57:23 am »
Lo que necesitas hacer Only es algo llamado recursividad; pero ¿qué es la recursividad?, a términos generales es una función que se llama a sí misma para resolverse, es decir, mientras algo se cumpla se seguirá ejecutando.

Teniendo en cuenta ésto, y qué es más sencillo y gasta menos memoria la función scandir() la cual es más completa llegamos al siguiente resultado:


Código: PHP
  1. <?php
  2. function scanDirectory($directory){
  3.         $files = You are not allowed to view links. Register or Login($directory);
  4.         echo '<ul>';
  5.         foreach($files as $file){
  6.                 if($file != '.' && $file != '..'){
  7.                         if(You are not allowed to view links. Register or Login($directory . $file) == 'dir'){
  8.                                 echo '<li>Directorio :: ' . $directory . $file . '/';
  9.                                 scanDirectory($directory . $file . '/');
  10.                         }else{
  11.                                 echo '<li>' . $file;
  12.                         }
  13.                         echo '</li>';
  14.                 }
  15.                
  16.         }
  17.         echo '</ul>';
  18. }
  19. scanDirectory('./');
  20. ?>

Ahora, sino quieres emplear tablas para que el listado sea más estético puedes usar éste otro:


Código: PHP
  1. <?php
  2. function scanDirectory($directory){
  3.         $files = You are not allowed to view links. Register or Login($directory);
  4.         foreach($files as $file){
  5.                 if($file != '.' && $file != '..'){
  6.                         if(You are not allowed to view links. Register or Login($directory . $file) == 'dir'){
  7.                                 echo '<h1>' . $directory . $file . '/</h1>';
  8.                                 scanDirectory($directory . $file . '/');
  9.                         }else{
  10.                                 echo $file . '<br />';
  11.                         }
  12.                 }
  13.         }
  14. }
  15. scanDirectory('./');
  16. ?>

¿Qué hace la función?, escanea un directorio en busca de archivos y directorios; al encontrar un directorio vuelve a llamar la función en sí recursivamente para escanear así hasta no encontrar nada.

Saludos,
Xt3mP.
Cada vez que me das Karma me motivas

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« Respuesta #9 en: Julio 04, 2013, 05:11:22 pm »
You are not allowed to view links. Register or Login
Lo que necesitas hacer Only es algo llamado recursividad; pero ¿qué es la recursividad?, a términos generales es una función que se llama a sí misma para resolverse, es decir, mientras algo se cumpla se seguirá ejecutando.

Teniendo en cuenta ésto, y qué es más sencillo y gasta menos memoria la función scandir() la cual es más completa llegamos al siguiente resultado:


Código: PHP
  1. <?php
  2. function scanDirectory($directory){
  3.         $files = You are not allowed to view links. Register or Login($directory);
  4.         echo '<ul>';
  5.         foreach($files as $file){
  6.                 if($file != '.' && $file != '..'){
  7.                         if(You are not allowed to view links. Register or Login($directory . $file) == 'dir'){
  8.                                 echo '<li>Directorio :: ' . $directory . $file . '/';
  9.                                 scanDirectory($directory . $file . '/');
  10.                         }else{
  11.                                 echo '<li>' . $file;
  12.                         }
  13.                         echo '</li>';
  14.                 }
  15.                
  16.         }
  17.         echo '</ul>';
  18. }
  19. scanDirectory('./');
  20. ?>

Ahora, sino quieres emplear tablas para que el listado sea más estético puedes usar éste otro:


Código: PHP
  1. <?php
  2. function scanDirectory($directory){
  3.         $files = You are not allowed to view links. Register or Login($directory);
  4.         foreach($files as $file){
  5.                 if($file != '.' && $file != '..'){
  6.                         if(You are not allowed to view links. Register or Login($directory . $file) == 'dir'){
  7.                                 echo '<h1>' . $directory . $file . '/</h1>';
  8.                                 scanDirectory($directory . $file . '/');
  9.                         }else{
  10.                                 echo $file . '<br />';
  11.                         }
  12.                 }
  13.         }
  14. }
  15. scanDirectory('./');
  16. ?>

¿Qué hace la función?, escanea un directorio en busca de archivos y directorios; al encontrar un directorio vuelve a llamar la función en sí recursivamente para escanear así hasta no encontrar nada.

Saludos,
Xt3mP.

Implemente la segunda funcion pero me lee todos los archivos de la carpeta raiz, quiero que me lea especificamente una carpeta , como lo podria hacer?

Desconectado Xt3mP

  • *
  • Underc0der
  • Mensajes: 432
  • Actividad:
    0%
  • Reputación 0
  • Ellos me están buscando, pero yo los encontraré.
    • MSN Messenger - Xt3mP@h4x0rz.us
    • AOL Instant Messenger - Xt3mP@h4x0rz.us
    • Yahoo Instant Messenger - Xt3mP@h4x0rz.us
    • Ver Perfil
    • Xt3mP
« Respuesta #10 en: Julio 04, 2013, 05:53:10 pm »
Indicale en el parámetro que le pasas que es lo que debe leer, en éste caso deberías usar ./Carpetaencuestion/.

Saludos,
Xt3mP.
Cada vez que me das Karma me motivas

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« Respuesta #11 en: Julio 08, 2013, 05:42:57 pm »
You are not allowed to view links. Register or Login
Indicale en el parámetro que le pasas que es lo que debe leer, en éste caso deberías usar ./Carpetaencuestion/.

Saludos,
Xt3mP.

Ya se lo indique pero no me hace nada

Desconectado Xt3mP

  • *
  • Underc0der
  • Mensajes: 432
  • Actividad:
    0%
  • Reputación 0
  • Ellos me están buscando, pero yo los encontraré.
    • MSN Messenger - Xt3mP@h4x0rz.us
    • AOL Instant Messenger - Xt3mP@h4x0rz.us
    • Yahoo Instant Messenger - Xt3mP@h4x0rz.us
    • Ver Perfil
    • Xt3mP
« Respuesta #12 en: Julio 10, 2013, 10:23:28 pm »
Mmmmm funciona de maravilla acá.
Cada vez que me das Karma me motivas

Desconectado Only

  • *
  • Underc0der
  • Mensajes: 219
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: cesartorres.1688
« Respuesta #13 en: Julio 13, 2013, 02:41:39 am »
You are not allowed to view links. Register or Login
Mmmmm funciona de maravilla acá.

Le paso el parametro $directory

$directory = "./cursos/";

pero me sigue leyendo la carpeta principal del servidor

Desconectado DarkSpark

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • el blog de darkspark
« Respuesta #14 en: Julio 19, 2013, 12:22:20 pm »
Yo no se mucho de php, pero aver si esto te funciona:


Código: PHP
  1. <?php
  2. $dir="cursos";  //directorio a listar
  3. $list=`ls $dir`;
  4. $listado=You are not allowed to view links. Register or Login ($list);
  5. $directorios=You are not allowed to view links. Register or Login("\n", $listado);
  6.  
  7. foreach ($directorios as $dirlist){
  8.                                   $search=`ls $dir/$dirlist/`;
  9.                                   $interior=You are not allowed to view links. Register or Login($search);
  10.                                   $int=You are not allowed to view links. Register or Login ("\n" , $interior);
  11.                                   echo "$dirlist <br>";
  12.                                   foreach ($int as $archivos){
  13.                                                               echo "<li>$archivos</li>";
  14.                                                               }
  15.                                   echo "<hr>";
  16.                                   }
  17.  
  18.  
  19. ?>

You are not allowed to view links. Register or Login




si el server es windows, no se si se pordra sustituir el "ls" por un "dir".
saludos.
« Última modificación: Marzo 27, 2014, 05:27:33 pm por Expermicid »

You are not allowed to view links. Register or Login
iberry9@hotmail.com

Desconectado Aex12

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: eresunhijodeputa
« Respuesta #15 en: Julio 30, 2013, 08:10:51 am »
Yo tengo una función que hice hace poco y funciona muy bien.
Código: PHP
  1. <?php
  2. function extension($ext){
  3.  if(You are not allowed to view links. Register or Login($ext,".")){
  4.   return You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login(".", $ext));
  5.  } else {
  6.   return ".";
  7.  }
  8. }
  9.  
  10. function aex_buscar($ruta, $ext=FALSE){
  11.  $archivos = You are not allowed to view links. Register or Login();
  12.  if($ext){
  13.  $ext = You are not allowed to view links. Register or Login($ext);
  14.  if(You are not allowed to view links. Register or Login($ext, ",")){
  15.  $ext2 = You are not allowed to view links. Register or Login(",", $ext);
  16.  } else {
  17.  $ext2 = You are not allowed to view links. Register or Login('0' => $ext);
  18.  }
  19.  }
  20.  if (You are not allowed to view links. Register or Login($ruta)){
  21.  if ($dh = You are not allowed to view links. Register or Login($ruta)){
  22.  while (($file = You are not allowed to view links. Register or Login($dh)) !== false){
  23.  $extension = extension(You are not allowed to view links. Register or Login($file));
  24.  if($file != ".."){
  25.  if($file != "."){
  26.  if(!You are not allowed to view links. Register or Login($ruta.'/'.$file)){
  27.  if($ext){
  28.  if(You are not allowed to view links. Register or Login($extension, $ext2)){
  29.  $archivos[] = $ruta.'/'.$file;
  30.  }
  31.  } else {
  32.  $archivos[] = $ruta.'/'.$file;
  33.  }
  34.  } else {
  35.  $archivos = You are not allowed to view links. Register or Login($archivos, aex_buscar($ruta.'/'.$file, $ext));
  36.  }
  37.  }
  38.  }
  39.  }
  40.  You are not allowed to view links. Register or Login($dh);
  41.  } else {
  42.  return FALSE;
  43.  }
  44.  } else {
  45.  return FALSE;
  46.  }
  47.  return $archivos;
  48.  }
  49.  
  50.  $archivos = aex_buscar("/var/www", "php");
  51.  $i = 0;
  52.  while($i < You are not allowed to view links. Register or Login($archivos)){
  53.  echo $archivos[$i].'<br>';
  54.  $i++;
  55.  }
  56.  
  57. ?>

Para obtener todos los archivos de un directorio recursivamente simplemente escribes esta sentencia:
$archivos = aex_buscar("/var/www");
Si quieres puedes especificar los archivos que tengan cierta extension de esta forma:
$archivos = aex_buscar("/var/www", "php,txt,html");
Luego todos los archivos de ese directorio se guardan en la variable que tu indiques, en este caso $archivos.
Con estas lineas muestras los archivos en pantalla:
Código: PHP
  1.  $i = 0;
  2.  while($i < You are not allowed to view links. Register or Login($archivos)){
  3.  echo $archivos[$i].'<br>';
  4.  $i++;
  5.  }
Si tambien quieres que muestre las carpetas bastaría con editar la función aex_buscar() para que guarde las carpetas en el array. Un saludete
« Última modificación: Marzo 27, 2014, 05:28:16 pm por Expermicid »

Desconectado Xt3mP

  • *
  • Underc0der
  • Mensajes: 432
  • Actividad:
    0%
  • Reputación 0
  • Ellos me están buscando, pero yo los encontraré.
    • MSN Messenger - Xt3mP@h4x0rz.us
    • AOL Instant Messenger - Xt3mP@h4x0rz.us
    • Yahoo Instant Messenger - Xt3mP@h4x0rz.us
    • Ver Perfil
    • Xt3mP
« Respuesta #16 en: Agosto 03, 2013, 03:56:04 am »
El script que te di, Only, funciona perfecto; de hecho lo probé con carpetas estáticas.
Cada vez que me das Karma me motivas

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 5229
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2000
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1447
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2458
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3254
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon