Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Dr [F] en 22 Julio 2010, 07:59 AM

Título: duda con directorios
Publicado por: Dr [F] en 22 Julio 2010, 07:59 AM
Hola gente :) soy yo, con otra de mis dudas :(

En esta oportunidad las dudas saltaron trabajando con directorios... miren aca les dejo un codigo:

Código (php) [Seleccionar]
<?php
$dir 
="/";
$directorio=opendir($dir); 

while(
$archivo=readdir($directorio))
{

echo 
$archivo;
echo 
date ("F d Y H:i:s."filemtime($nombre_archivo));

echo 
"<br>";
}
closedir($directorio); 
?>



Basicamente, no se como hacer para que me de la fecha de la ultima modificaciion ya que me tira error :s, busque por todas partes y no encontre nada :S

¿Que tengo mal?

Muchas gracias a todos :)

Título: Re: duda con directorios
Publicado por: ~ Yoya ~ en 22 Julio 2010, 16:10 PM
Lee un poco mas de documentacion, hasta la misma fucion te lo dice xD.
Código (php) [Seleccionar]

<?php
$dir 
="/";
$directorio=opendir($dir); 
 
while(
false !== ($archivo=readdir($directorio)))
{
 
echo 
$archivo;
echo 
date ("F d Y H:i:s."filemtime($nombre_archivo));
 
echo 
"<br>";
}
closedir($directorio); 
?>
Título: Re: duda con directorios
Publicado por: Dr [F] en 22 Julio 2010, 17:59 PM
tienes alguna documentacion ? :s
no encuentro nada, mejor dicho siempre encuentro lo mismo y lo que leo no sirve :S

gracias
Título: Re: duda con directorios
Publicado por: ~ Yoya ~ en 22 Julio 2010, 20:27 PM
http://www.php-es.com/function.readdir.html
Título: Re: duda con directorios
Publicado por: Dr [F] en 22 Julio 2010, 22:52 PM
entonces, en primer lugar estaria leyendo mal los directorios ya que seria asi ?

Código (php-brief) [Seleccionar]
<?
if($direc = opendir("./")) {
echo "Directorio actual";
echo $direc;
echo "<br>";
echo "Archivos: \n";
while (FALSE !==($arc = readdir($direc)))
{
// mi pregunta es si aca podria agregar la funcion filemtime.. eso no me termina de //quedar claro ya que si la agrego me provoca un error :s

//gracias
echo $arc;
echo "<br>";
}
closedir($direc);
?>
Título: Re: duda con directorios
Publicado por: ~ Yoya ~ en 23 Julio 2010, 00:06 AM
Sep, ej:
Código (php) [Seleccionar]
<?
$direc = opendir("/var/www");
echo "Directorio actual<br>";
echo $direc;
echo "<br>";
echo "Archivos: <br>";
while (FALSE !==($arc = readdir($direc)))
{

echo "$arc -> ".date ("F d Y H:i:s.", filemtime($arc))."<br>";

}
closedir($direc);
?>


Salida:
ej.php~ -> July 07 2010 18:10:53.
as.php~ -> July 08 2010 13:23:23.
a.html -> July 20 2010 13:41:30.
s.php~ -> July 22 2010 18:05:27.
info.php -> July 13 2010 18:27:51.
as.php -> July 08 2010 13:27:56.
Untitled1 -> July 08 2010 18:03:17.
.. -> June 30 2010 19:28:48.
s.php -> July 22 2010 18:05:38.
. -> July 22 2010 18:05:38.
info.php~ -> July 13 2010 18:27:36.
ex.html~ -> July 13 2010 13:34:09.
ej.php -> July 07 2010 18:15:43.
a.css~ -> July 08 2010 18:14:49.
a.php -> July 07 2010 17:12:19.
ej -> July 13 2010 20:14:02.
ex.html -> July 13 2010 13:36:07.
a.html~ -> July 20 2010 13:41:06.
a.css -> July 08 2010 18:17:28.
zapatos -> July 03 2010 16:43:58.
smf -> July 18 2010 19:57:57.
Título: Re: duda con directorios
Publicado por: Dr [F] en 23 Julio 2010, 01:32 AM
Muchas gracias yoya, pero no entiendo por que en el primer codigo que puse no sucedia eso :s

saludos
Título: Re: duda con directorios
Publicado por: ~ Yoya ~ en 23 Julio 2010, 01:45 AM
Aqui mira...

Tu primer source
Código (php) [Seleccionar]

while($archivo=readdir($directorio))


La forma correcta:
Código (php) [Seleccionar]

while(false !== ($archivo=readdir($directorio)))


Te deje un link para que lo veas xD.
Título: Re: duda con directorios
Publicado por: Dr [F] en 23 Julio 2010, 02:18 AM
ya se que es esa la diferencia y ademas comprendi la diferencia ( que es lo mas importante creo yo)

pero eso solo provocaba el error ?
Título: Re: duda con directorios
Publicado por: ~ Yoya ~ en 23 Julio 2010, 02:22 AM
man te deje el link para que lo leas
Título: Re: duda con directorios
Publicado por: NaSaRiD15 en 23 Julio 2010, 05:44 AM
Tengo un problema ese mismo codigo que estan usando me imprime $arc
primero como . y dsps como  .. y dsps ya no imprime mas nada...

Que siginifica esto?

Gracias.
Título: Re: duda con directorios
Publicado por: ~ Yoya ~ en 23 Julio 2010, 16:35 PM
puede ser porque no existe nada dentro o no es un path valido.
Título: Re: duda con directorios
Publicado por: NaSaRiD15 en 24 Julio 2010, 01:32 AM
A ver, esta es la script que hice, es similar lo unico que quiero imprimirla dentro de una tabla.

Antes les cuento un poco la situaicon tengo wamp instalado, y dentro mismo de la carpeta www, cree una llamada archivos y ahi dentro pongo evidentemente los archvios.

Citar<?php
$dir ="archivos";
$directorio=opendir($dir);

echo "<table border = '1'>";
echo "\t <tr>";
echo "\t\t <th> Nombre </th>";
echo "\t\t <th> Peso </th>";
echo "\t\t <th> Fecha </th>";
echo "\t\t <th> Descargar </th>";
echo "\t </tr>";
$archivo=readdir($directorio);
echo $archivo;
while(false !== ($archivo=readdir($directorio)))
{

echo "\t <tr>";
echo "\t\t <td>".$archivo ." </td>";
echo "\t\t <td> ".filesize($archivo)." </td>";
echo "\t\t <td>".date ('F d Y H:i:s.', filemtime($archivo))." </td>";
echo "\t\t <td> <a href='http://localhost/$directorio/$archivo'> click aqui </a></td>";
echo "\t <tr>";
echo "</table>";

}
closedir($directorio);
?>

Y este es el resultado :

(http://r.i.elhacker.net/cache?url=http://img713.imageshack.us/img713/7380/errores.png) (http://img713.imageshack.us/i/errores.png/)

No entiendo porque imprime 1 punto en la primer celda de la tabla.. :S, y los demas errores tampoco..

Saludos y gracias.
Título: Re: duda con directorios
Publicado por: Shell Root en 24 Julio 2010, 04:20 AM
Código (php) [Seleccionar]
function sacarUltimaCarpeta($sRuta){
# Función usada para sacar la ultima carpeta de la ruta ingresada
  $sCarpetas = split('/', $sRuta);
  $sUltima = $sCarpetas[count($sCarpetas)-2];
  return $sUltima;
}

function listarArchivos($sRuta){
  if (is_dir($sRuta)) {
     if ($dh = opendir($sRuta)) {
        while (($sFile = readdir($dh)) !== false) {
           if (is_file($sRuta.$sFile)){
              infoArchivo($sRuta.$sFile);
              listarArchivos($sRuta.$sFile."/");
           }
        }
        closedir($dh);
     }
  }
}

function infoArchivo($sArchivo){
  echo "
     <tr>
           <td>". $sArchivo ."</td>
           <td>". filesize($sArchivo) ."</td>
           <td>". date('F d Y H:i:s.', filemtime($sArchivo)) ."</td>
     </tr>
     ";
}

  echo "<table border=1>";
  echo " <tr>";
  echo "  <td><b>Nombre</b></td>";
  echo "  <td><b>Peso</b></td>";
  echo "  <td><b>Fecha</b></td>";
  echo " </tr>";

  echo listarArchivos("/home/shellroot/Escritorio/www/");

  echo "</table>";


Resultado:
Nombre Peso Fecha
/home/shellroot/Escritorio/www/index.html 177 July 14 2010 17:26:57.