Foros del Web » Programando para Internet » PHP »

Leer Carpetas del servidor con php

Estas en el tema de Leer Carpetas del servidor con php en el foro de PHP en Foros del Web. hola amigos no consigo mostrar solo las carpetas que dependen del directorio "images" de mi servidor. en el script siguiente me muestra un combo box ...
  #1 (permalink)  
Antiguo 12/08/2010, 20:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 15
Antigüedad: 13 años, 8 meses
Puntos: 0
Leer Carpetas del servidor con php

hola amigos no consigo mostrar solo las carpetas que dependen del directorio "images" de mi servidor. en el script siguiente me muestra un combo box en blanco. y si cambio la primer linea por if ($handle = opendir("./")) {
me muestra todas las carpetas que hay en el raiz .


<?php
if ($handle = opendir("./images")) {
echo "<tr>";
echo "<td><select name=archivo>";
//while (false !== ($file = readdir($handle))) {
while ($file=readdir($handle)) {
if (is_dir($file) && $file != "." && $file != "..") {
//if (is_dir($file)) {
echo "<option>$file</option> <br>";
}
}
echo "</select></td>";
echo "</tr>";
closedir($handle);
}
?>
  #2 (permalink)  
Antiguo 12/08/2010, 20:05
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Leer Carpetas del servidor con php

bueno de verdad no e trabajado mucho con directorios pero si prestas un pokito de atencion el uso del signo = es el siguiente :
=: para asignar.
==: para comparar
en esta linea :
Cita:
if ($handle = opendir("./images")) {
estas usando un if es decir estas comparando cual uso del signo igual deberias usar??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 12/08/2010, 22:36
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Leer Carpetas del servidor con php

No le falta un punto a esto? ./images

../images


???
__________________
la la la
  #4 (permalink)  
Antiguo 12/08/2010, 22:52
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Leer Carpetas del servidor con php

Hola,

Posiblemente,

Código:
if (!is_dir($file) && $file != "." && $file != "..") {
que no sea un directorio y que no sea igual al directorio actual ('.') y que no sea igual al directorio padre ('..').

Y como indica carlos_belisario,

Código:
if ($handle = opendir("./images")) {
aunque no es obligatorio, en PHP es preferible evitar asignaciones en condiciones.

Saludos,
  #5 (permalink)  
Antiguo 12/08/2010, 22:54
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Leer Carpetas del servidor con php

bueno creo q si el asigna en una condicion esta practicamente diciendole q entre a la misma o no es el caso?? por eso lo coloco si estoy ekivokdo por favor digamenlo para salir del error saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 12/08/2010, 23:04
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Leer Carpetas del servidor con php

Hola,

Realmente no le estas diciendo que no entre en el bloque automáticamente. Los bloques de código se evalúan y el resultado es devuelto, seguidamente es convertido a su representación booleana.

Por ejemplo:

if ($var = "1") {
echo "True";
}

En ese caso se evalúa la asignación de $var = "1", el resultado de esa asignación es "1"; al convertirlo en su representación boolena es verdadero, y por lo tanto entra en el bloque del if y muestra True. Si la asignación fuera = "0" no entraría en el bloque.

Saludos,
  #7 (permalink)  
Antiguo 12/08/2010, 23:07
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Leer Carpetas del servidor con php

por lo mismo no le esta diciendo en ese momento q entre al bloq?? es decir creo q como lo escribi se ve mal el automaticamente le esta diciendo q entre al bloq al hacer la asignacion?? o estoy ekivokdo??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 12/08/2010, 23:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Leer Carpetas del servidor con php

buenicima la explicacion me sacas de una duda q no penc q fuera asi gracias por la respuesta y la enseñanza todos los dias se aprende algo nuevo
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 12/08/2010, 23:25
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Leer Carpetas del servidor con php

Hola,

Posiblemente el ejemplo anterior no era el mejor, veamos en la pregunta:

if ($handle = opendir("./images")) {

En ese caso opendir devuelve el valor 0, null, undefined, o cualquier otra cosa que signifique false, para indicar que hubo un error; al realizar la asignación se evalúa el código, se pasa al 'if' y el resultado es false en booleano.

En el caso que opendir no generara un error, generaría un número de recurso como podría ser #1234; ese número se evalúa como true puesto que cualquier número diferente que 0, null, undefined, etc., se evalúa como true.

Pero eso no es aconsejable usarlo en ningún lenguaje de programación, aunque los programadores en C/C++ posiblemente te digan lo contrario. :D

Saludos,
  #10 (permalink)  
Antiguo 14/08/2010, 15:29
 
Fecha de Ingreso: agosto-2010
Mensajes: 15
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Leer Carpetas del servidor con php

Hola gracias por las respuestas pero yo solo quiero que me muestre las carpetas que hay dentro de la carpeta IMAGES y no puedo lograrlo.

if (!is_dir($file) && $file != "." && $file != "..") {

con esta linea me muestra los achivos que hay dentro de la carpetas images

si quito el "!"

if (is_dir($file) && $file != "." && $file != "..") {

no me muestra nada .
  #11 (permalink)  
Antiguo 14/08/2010, 15:52
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Leer Carpetas del servidor con php

Epespinosa:

En un rato te paso un ejemplo que casi con seguridad, resolverá tu problema.


Federico
  #12 (permalink)  
Antiguo 14/08/2010, 15:57
 
Fecha de Ingreso: agosto-2010
Mensajes: 15
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Leer Carpetas del servidor con php

gracias federico .
  #13 (permalink)  
Antiguo 14/08/2010, 17:33
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Leer Carpetas del servidor con php

Epespinosa:

Hice un ejemplo que funciona, probálo y decíme si te sirve. El PHP lo tenés que cargar en la jerarquía inmediata superior de "images".

<?

$contador_de_directorios = 0;
$cadena = '<option>Seleccionar una opción</option><br>';
$handle = opendir ("carpeta1");

while (false != ($elemento = readdir($handle)))
{
$ruta = 'carpeta1/'.$elemento;
if (is_dir($ruta) && $elemento != '.' && $elemento != '..')
{
$cadena = $cadena.'<option>'.$elemento.'</option><br>';
$contador_de_directorios = $contador_de_directorios + 1;
}
}

if ($contador_de_directorios != 0) echo '<tr><td><select name=unnombre>'.$cadena.'</select></td>';

?>
  #14 (permalink)  
Antiguo 14/08/2010, 17:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 15
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Leer Carpetas del servidor con php

Gracias Federico! me solucionaste un problemon . Funciona de maravillas
  #15 (permalink)  
Antiguo 14/08/2010, 18:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Leer Carpetas del servidor con php

Me alegro!!

Etiquetas: carpetas, servidores
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 12:16.