Foros del Web » Programando para Internet » PHP »

leer directorio actual

Estas en el tema de leer directorio actual en el foro de PHP en Foros del Web. estuve buscando en la con la opcion busqueda de como leer el contenido de un directorio. pero como leo el directorio actual. encontre este ejemplo ...
  #1 (permalink)  
Antiguo 11/02/2003, 13:00
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 15 años, 5 meses
Puntos: 0
leer directorio actual

estuve buscando en la con la opcion busqueda de como leer el contenido de un directorio. pero como leo el directorio actual. encontre este ejemplo aqui en el foro pero me marca error

Código PHP:
<?php
$dir
=opendir('.');
while(
false !== ($filereaddir($dir))){
    echo 
$file."<br>";
}
closedir($dir);
?>
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #2 (permalink)  
Antiguo 11/02/2003, 13:03
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 7 meses
Puntos: 7
Cambia opendir(".") por opendir("\") y luego haz un echo a $dir. Puede ser que no tengas permisos de lectura...
  #3 (permalink)  
Antiguo 11/02/2003, 13:06
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
ya lo probe

ya lo probe y no marca ningun error.

por que no checas en donde se encuentra tu programa mira aqui te mando el mio.

estoy haciendolo en linux y lo deposito en la carpeta /var/www/html

<html>
<body>
<form>
<?php


$dir = opendir('Directorio_actual');

while(false !== ($file = readdir($dir))) {
echo "$file"."<br>";




}

closedir($dir);

?>
</form>
</body>
</html>

espero te sirva
  #4 (permalink)  
Antiguo 11/02/2003, 13:12
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 15 años, 5 meses
Puntos: 0
es que no tengo definido un directorio, es decir, estoy leyendo el directorio actual, supongamos que tengo mi web : www.bhonox.com y luego cree un directorio llamado prueba donde puse el script, ahora el script esta dentro de prueba y quiero leer ese directorio, osea los archivos que tiene... ya que el script no esta antes
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #5 (permalink)  
Antiguo 11/02/2003, 13:33
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
OK

Mira yo lo probe como lo tienes y si me mostro el direcorio actual es decir yo tengo mi script en /var/www/html

y muestra el contenido de ese directorio.


con

$dir = opendir('.');
  #6 (permalink)  
Antiguo 11/02/2003, 13:36
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 15 años, 5 meses
Puntos: 0
juaz ahora me tomo y no hice ningun cambio...
gracias de todas maneras
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #7 (permalink)  
Antiguo 14/02/2003, 11:39
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
Wenass:

Cómo puedo hacer para que sólo me lea las carpetas que hay dentro de ese directorio?

Es decir, tengo un directorio llamado "fotos" y dentro de este hay otras subcarpetas llamadas "0001", "0002", "0003"...
Cómo puedo hacer para que me devuelva:

0001 0002 0003 ...

Y si además se puede cambiar automáticamente a:

1 2 3 ... y crear un link a cada subcarpeta (cada una de ellas contiene un "index.php") sería genial .

Se puede?

Salu2.
__________________
http://www.sexoparamo.com
  #8 (permalink)  
Antiguo 14/02/2003, 11:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
ORPHEO... si, se puede .. pero:

Lo mejor será q te pases por el manual de PHP .. seccion "manipulación de directorio y ficheros" y te empapes las fuciones de leer directorios (ficheros y sub-directorios) .. ahí veras como puedes filtrar los directorios q quieras o cambiarte de directorio si lo necestias ... (ejemplos en cada funcion tienes y en los comentarios de los usuarios mas ..)

http://www.php.net/manual/en/ref.filesystem.php

Un saludo,
  #9 (permalink)  
Antiguo 14/02/2003, 12:01
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
Jo, macho... Me temo que soy demasiado novato para esto...
He ido a esa página y lo he leído, pero no me entero de mucho... y encima en inglés!

No podrías ayudarme un poco?

Salu2.
__________________
http://www.sexoparamo.com
  #10 (permalink)  
Antiguo 14/02/2003, 16:42
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
Nadie?

Salu2.
__________________
http://www.sexoparamo.com
  #11 (permalink)  
Antiguo 14/02/2003, 17:20
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Si tu problema es el ingles, ya sabes que la propia www.php.net lo tienen tambien en castellano.

Y para lo que quieres, si ya te han dado el codigo para recorrer todas las entradas (ficheros y directorios) de un directorio, solo tienes que ir comprobando con is_dir() si es un directorio (cuidado con . y .. ). Si es directorio creas el link y si no, sigues con la siguiente entrada.

Y para cambiar de la cadena 00001 a 1 quizas te vale con pasarlo a entero con settype() o haciendo un cast de la forma $v=(int)"0001"; no estoy seguro.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 14/02/2003, 17:33
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
Gracias por responder, josemi

Vamos a ver... En primer lugar tengo este código:

Código PHP:
<html>
<body>
<form>
<?php


$dir 
opendir('.');

while(
false !== ($file readdir($dir))) {
echo 
"$file"."<br>";

}

closedir($dir);

?>
</form>
</body>
</html>
Dónde coloco el is_dir?


while(false !== ($file = readdir($dir))) {
if $file is_dir
echo "$file"."<br>";
}


Por otra parte, qué es eso de . y ..?

Salu2.
__________________
http://www.sexoparamo.com
  #13 (permalink)  
Antiguo 14/02/2003, 17:59
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Claro, que hay muchas personas que te pueden contestar lo que pides, el detalle es que ha esas mismas personas les gusta que tambien tu hagas tu tarea. Es decir que te quiebres un rato
la cabeza programando lo que necesitas hacer. Si despues de eso tienes dudas bueno lo preguntas publicando la parte de tu codigo y la duda que tienes.
Y esto sucede por que hay que recordar que aqui la gente te contesta cuando puede.

Pero bueno como quiera una ayudita se te puede dar para que inicies con tus actividades.

1.- abrir directorio.
2.- leer directorio.
3.- mientras lees el direcotrio preguntas si existen subcarpetas.
5.- mandas a pantalla esas carpetas.
4.- si no hay subcarpetas terminas.

Ah, y en cuanto al manual en ingles no hay problema tambien lo hay en español. http://www.php.net/manual/es/
  #14 (permalink)  
Antiguo 14/02/2003, 18:00
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Ja, creo que me tarde en contestar...
  #15 (permalink)  
Antiguo 14/02/2003, 19:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ultimaménte siempre remito al manual en su versión en Ingles .. No es porque me guste mas en ingles .. sino porque está mas completo q la versión en castellano ..

En cada funcion o tema del manual en linea de PHP tienes par elegir entre un buen nuemor de idomas para leerlo .. Pero como decía te recomiendo q leas si quieres el "tema" por encima en castellano y luego lo compares con el ingles . si ves mas cosas en ingles . ya sabes.

Por cierto .ORPHEO .. ya es hora de que con los consejos que se te han dado te pongas hacer algo tu y empezar la cosa .. Si tienes dudas inicia un nuevo mensaje ..

Un saludo,
  #16 (permalink)  
Antiguo 16/02/2003, 06:05
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
No es por no trabajar... Es que aún me falla mucho la sintaxis.

He probado varias cosas, pero siempre me da algún tipo de error. Ahora estoy en esto:

Código PHP:
<html>
<body>
<form>
<?php


$dir 
opendir('.');

while(
false !== ($file readdir($dir))) {
if(
is_dir($file))
echo 
"<a href=$file>";
echo 
"$file"."<br>";
echo 
"</a>";
else die;
}

closedir($dir);

?>
</form>
</body>
</html>
Y me dice:

"Parse error: parse error in /home/sexoparamo/fo/Preciosas/Modelos/indice.php on line 14"

que es:

Código PHP:
else die; 
Que estoy escribiendo mal?

Salu2.
__________________
http://www.sexoparamo.com
  #17 (permalink)  
Antiguo 16/02/2003, 06:54
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
Bien, algo he conseguido (véis como me esfuerzo? )

Código:
Código PHP:
<html>
<body>
<form>
<?php


$dir 
opendir('.');

while(
false !== ($file readdir($dir))) {
if(
is_dir($file)) {
echo 
"<a href=$file>";
echo 
"$file"."<br>";
echo 
"</a>";
} else die;

}
closedir($dir);

?>
</form>
</body>
</html>
Y me devuelve esto (con sus respectivos links):

.
..
0001
0002

Y ahí acaba.

Voy bien, no?

Ahora bien, cómo elimino el . y lo .. ?

Salu2.
__________________
http://www.sexoparamo.com
  #18 (permalink)  
Antiguo 16/02/2003, 07:56
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
Bueno, he mejorado un poco el código, pero sigo sin poder quitar el . y los ..
Código PHP:
<html>
<head>
<STYLE type=text/css>
   A:link { COLOR: #33FF33; TEXT-DECORATION: none } A:active { COLOR: #FF0000; TEXT-DECORATION: none } A:visited { COLOR: #FF00FF; TEXT-DECORATION: none } A:hover { COLOR: red; TEXT-DECORATION: underline }
    </STYLE>
<base target="telon">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body bgcolor="#000000" text="#00FFFF" leftmargin="0" topmargin="0" fontsize="1">
<div align="left"><form>
  <table height="2" border="0" cellpadding="0" cellspacing="0">
    <tr><td><font size="2">&nbsp;&nbsp;&nbsp;-&nbsp;Galería:</font></td>

<?php


$dir 
opendir('.');

while(
false !== ($file readdir($dir))) {
if(
is_dir($file)) {
echo 
"<td width=3 align=center><font size=1 color=#000000>&nbsp;";
echo 
"<a href=$file>";
echo 
"$file"."</a>";
echo 
"</font></td>\n";
}

}
closedir($dir);

?>

</tr>
</table>
</form>
</div>
</body>
</html>
Algún alma caritativa?

Salu2.
__________________
http://www.sexoparamo.com
  #19 (permalink)  
Antiguo 16/02/2003, 08:15
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Código PHP:
$handle ".";
while (
$directorio readdir($handle)) { 
if (
$directorio != "." AND $directorio != "..")
{
if(
is_dir($directorio))
{
echo 
"<a href=$directorio>";
echo 
"$directorio"."<br>";

echo 
"</a>";

} else die;

}
}
closedir($dir); 
__________________
Usuario registrado de Linux #288725
  #20 (permalink)  
Antiguo 16/02/2003, 10:44
Avatar de ORPHEO  
Fecha de Ingreso: diciembre-2002
Mensajes: 77
Antigüedad: 15 años
Puntos: 0
Gracias, epplestun. Pero tu código me daba error de argumento no válido.
Lo he mezclado con el mío, así:
Código PHP:
<html>
<head>
<STYLE type=text/css>
   A:link { COLOR: #33FF33; TEXT-DECORATION: none } A:active { COLOR: #FF0000; TEXT-DECORATION: none } A:visited { COLOR: #FF00FF; TEXT-DECORATION: none } A:hover { COLOR: red; TEXT-DECORATION: underline }
    </STYLE>
<base target="telon">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body bgcolor="#000000" text="#00FFFF" leftmargin="0" topmargin="0" fontsize="1">
<div align="left"><form>
  <table height="2" border="0" cellpadding="0" cellspacing="0">
    <tr><td><font size="1">&nbsp;&nbsp;&nbsp;-&nbsp;GALERIA:</font></td>

<?php


$dir 
opendir('.');

while(
false !== ($file readdir($dir))) {
if (
$file != "." AND $file != "..")
{
if(
is_dir($file)) {
echo 
"<td width=3 align=center><font size=1 color=#000000>&nbsp;";
echo 
"<a href=$file>";
echo 
"$file"."</a>";
echo 
"</font></td>\n";
}

}
}
closedir($dir);

?>

</tr>
</table>
</form>
</div>
</body>
</html>
Y funciona!!!

Sólo me queda un pequeño detalle. Hay alguna manera de que me devuelva 1 2 3 ... en lugar de 0001 0002 0003..., sin tener que cambiar los nombres de las carpetas (cosa que no quiero)?

Salu2.
__________________
http://www.sexoparamo.com
  #21 (permalink)  
Antiguo 16/02/2003, 12:57
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
nirmal que no te funcione, el argumento que le paso yo a la funcion es una variable del nombre que yo e querido, tienes que ponerlo a tu medida y todo te funcionara sin probmelas, revisa la pagina del manual ofical, php.net/manual/es/ref.dir.php
__________________
Usuario registrado de Linux #288725
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




La zona horaria es GMT -6. Ahora son las 16:01.