Foros del Web » Programando para Internet » PHP »

listar contenido directorio bucle rompe neuronas NO tengo idea de como mejorarlo!

Estas en el tema de listar contenido directorio bucle rompe neuronas NO tengo idea de como mejorarlo! en el foro de PHP en Foros del Web. Hola pues resulta que busque listar los iconos para una aplicacion con extensiones png, bien esto me ha resultado haciendolo asi: Código PHP:         $dir  =  ...
  #1 (permalink)  
Antiguo 30/05/2012, 22:21
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
listar contenido directorio bucle rompe neuronas NO tengo idea de como mejorarlo!

Hola pues resulta que busque listar los iconos para una aplicacion con extensiones png, bien esto me ha resultado haciendolo asi:

Código PHP:

        $dir 
"/iconos/" ;
        
$iconos scandir($dir) ;
        
$contar count($icono_set) ;
        
     for( 
$i 0$i $contar$i++ )
        {
            if( 
preg_match('/.png$/'$iconos[$i]) )
            {
    
   echo 
' <div>
  <img src="iconos/'
.$iconos[$i].'" width="34" height="22" border="0" alt="." /><br />';

  
   echo = 
'</div>';
            }
        } 
esto me funciona de maravilla, el asunto es que necesito cargar 4 imagenes por linea y esto me carga un lista, intente miles de formas pero nada...

pues necestio que sea

imagen - imagen - imagen - imagen

imagen - imagen - imagen - imagen

NO asi:

imagen
imagen
imagen

se entiende?

aguna idea de como hacerlo

saludos!
__________________
Es duro fracasar en algo, pero es mucho peor no haberlo intentado. - Si crees todo lo que lees, mejor no leas -
  #2 (permalink)  
Antiguo 30/05/2012, 22:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: listar contenido directorio bucle rompe neuronas NO tengo idea de como mej

¿Qué tanto sabes de lógica?

Si no puedes manejar la lógica será imposible resolver para ti lo que planteas, tan simple como crear un contador; incrementarlo, verificar si llega a 4, resetearlo... agrupar valores en una cadena o array, etc... hay muchas formas de conseguirlo, si prefieres darte por vencido y dejar que otros piensen por ti entonces deberías dejar el negocio.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/05/2012, 22:55
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: listar contenido directorio bucle rompe neuronas NO tengo idea de como mej

Como dice pateketrueke, la lógica es fundamental en la programación, te recomiendo primero pensar bien como podes hacer eso mas alla que sea en php en la vida cotidiana como lo harias?

Yo por ejemplo en mi vida cotidiana haría:

1 2 3 4
1 2 3 4

Es decir cuento hasta cuatro, salto de linea y vuelvo a contar hasta cuatro. esto nos da que necesitamos un $n=1;(Este es el numero principal) $n++;(Este es el que cuenta) y $n=0; (Este restablece la cuenta). Ahora tus pensamientos lo tenes que imprimir en código, es un poco mas complicado ya que una computadora no tiene uso de razón, entonces vas a tener que expresar tal cual lo que quieres, sino te dará errores o resultados no correctos.

Te dejo un código para que veas mi ejemplo:

Código PHP:
Ver original
  1. <?php
  2. $sql[] = "1";
  3. $sql[] = "2";
  4. $sql[] = "3";
  5. $sql[] = "4";
  6. $sql[] = "5";
  7. $sql[] = "6";
  8. $i = 1;
  9. foreach($sql as $k){
  10.     echo $k;
  11.         if($i == 4) echo "<br>";
  12.     if($i == 4) $i = 0; // Esto si lo ponemos debajo del $i++; tendria que ser $i=1;
  13.     $i++;
  14. }
  15. ?>


PD: La lógica se usa en cualquier trabajo que se realice con el cerebro

Saludos
  #4 (permalink)  
Antiguo 31/05/2012, 00:38
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: listar contenido directorio bucle rompe neuronas NO tengo idea de como mej

GRACIAS!!! ya lo he solucionado, efectivamente como dice
marcofbb, ahí estaba todo mi rompedero de cabeza

Código:
// Esto si lo ponemos debajo del $i++; tendria que ser $i=1;
saludos!!!
__________________
Es duro fracasar en algo, pero es mucho peor no haberlo intentado. - Si crees todo lo que lees, mejor no leas -
  #5 (permalink)  
Antiguo 31/05/2012, 00:44
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: listar contenido directorio bucle rompe neuronas NO tengo idea de como mej

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Qué tanto sabes de lógica?

Si no puedes manejar la lógica será imposible resolver para ti lo que planteas, tan simple como crear un contador; incrementarlo, verificar si llega a 4, resetearlo... agrupar valores en una cadena o array, etc... hay muchas formas de conseguirlo, si prefieres darte por vencido y dejar que otros piensen por ti entonces deberías dejar el negocio.
que negocio!

solo trato de aprender, pero claro como dije antes era el problema de resetear el contador, no busco que piensen por mi solo quería saber en que me equivocaba.

se agradece de todo modos

saludos
__________________
Es duro fracasar en algo, pero es mucho peor no haberlo intentado. - Si crees todo lo que lees, mejor no leas -
  #6 (permalink)  
Antiguo 31/05/2012, 03:54
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: listar contenido directorio bucle rompe neuronas NO tengo idea de como mej

Pues bien por si le sirve a alguien me ha quedado asi, primero hice esto:

Código PHP:
Ver original
  1. $dir = opendir("/iconos/");
  2. $archivos = array();
  3. while ($arch = readdir($dir))
  4.   if (is_file("/iconos/".$arch))
  5.     $archivos[] = $arch;
  6.    $i = 0;
  7.    foreach($archivos as $logicaaaaaaaaaaaaaaa){
  8.    echo '
  9.     <img src="iconos/'.$logicaaaaaaaaaaaaaaa.'" width="34" height="22" />
  10.     ';
  11.         if($i == 12)  '<br />';
  12.     if($i == 12) $i = 0;
  13.     $i++;
  14. }

bien esta forma no esta bien, observen que estoy dando una asignación y la variable tomara el valor que presisa (requerido)
pero php evalua false incluso un directorio de nombre "0" y si esto sucede el bucle se pararia, asi que lo paso asi:

Código PHP:
Ver original
  1. $dir = opendir("/iconos/");
  2. $archivos = array();
  3. while (($arch = readdir($dir)) !== false)
  4.   if (is_file("/iconos/".$arch))
  5.     $archivos[] = $arch;
  6.    $i = 0;
  7.    foreach($archivos as $logicaaaaaaaaaaaaaaa){
  8.     echo '
  9.     <img src="iconos/'.$logicaaaaaaaaaaaaaaa.'" width="34" height="22" />
  10.     ';
  11.         if($i == 12)'<br />';
  12.     if($i == 12) $i = 0;
  13.     $i++;
  14. }

ahora lo que quedaria es tomar la extension de archivos que quiero listar entonces lo deje asi:

Código PHP:
Ver original
  1. $dir = opendir("/iconos/");
  2. $archivos = array();
  3. while (($arch = readdir($dir)) !== false)
  4. if (is_file("/iconos/".$arch) and strpos($arch, '.png',1)) // se podria usar GLOB_BRACE pero a veces no esta habilitado.
  5.     $archivos[] = $arch;
  6.    $i = 0;
  7.    foreach($archivos as $logicaaaaaaaaaaaaaaa){
  8.     echo '
  9.     <img src="iconos/'.$logicaaaaaaaaaaaaaaa.'" width="34" height="22" />
  10.     ';
  11.         if($i == 12)'<br />';
  12.     if($i == 12) $i = 0;
  13.     $i++;
  14. }
  15. closedir($dir);

creo que si no me fallo la LOGICAAAAAAAAAAA esta bien...

¿o no?

ENJOY!!!

PD.: en fin es una base de seguro que se puede mejorar.
__________________
Es duro fracasar en algo, pero es mucho peor no haberlo intentado. - Si crees todo lo que lees, mejor no leas -

Etiquetas: bucle, contenido, directorio, idea, imagenes
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 14:43.