Hola gente :) soy yo, con otra de mis dudas :(
En esta oportunidad las dudas saltaron trabajando con directorios... miren aca les dejo un codigo:
<?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 :)
Lee un poco mas de documentacion, hasta la misma fucion te lo dice xD.
<?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);
?>
tienes alguna documentacion ? :s
no encuentro nada, mejor dicho siempre encuentro lo mismo y lo que leo no sirve :S
gracias
http://www.php-es.com/function.readdir.html
entonces, en primer lugar estaria leyendo mal los directorios ya que seria asi ?
<?
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);
?>
Sep, ej:
<?
$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.
Muchas gracias yoya, pero no entiendo por que en el primer codigo que puse no sucedia eso :s
saludos
Aqui mira...
Tu primer source
while($archivo=readdir($directorio))
La forma correcta:
while(false !== ($archivo=readdir($directorio)))
Te deje un link para que lo veas xD.
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 ?
man te deje el link para que lo leas
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.
puede ser porque no existe nada dentro o no es un path valido.
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.
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.