Foros del Web » Programando para Internet » PHP »

Recorrer directorio y agregar coma al final

Estas en el tema de Recorrer directorio y agregar coma al final en el foro de PHP en Foros del Web. Hola amigos, tengo un codigo bastante simple (creo) que lo que hace es armar un slider dinamicamente recorriendo un directorio y creando el codigo javascript ...
  #1 (permalink)  
Antiguo 26/04/2012, 08:27
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Recorrer directorio y agregar coma al final

Hola amigos, tengo un codigo bastante simple (creo) que lo que hace es armar un slider dinamicamente recorriendo un directorio y creando el codigo javascript necesario, lo que tengo que hacer es que cuando sea el ultimo archivo no me agregue una coma al final, el codigo que tengo es este:

Código PHP:
Ver original
  1. <script>
  2. var slideshowSpeed = 6000;
  3. var photos = [
  4.  
  5. <?php
  6.  $directory = 'images/slider' . $row['imageName'];
  7. try {    
  8.     // Styling for images
  9.     foreach ( new DirectoryIterator($directory) as $item ) {            
  10.         if ($item->isFile()) {
  11.             $path =  $directory . "/" . $item;
  12.             echo "{image :\"" . $path . "\"},";
  13.         }
  14.     }
  15. }
  16. catch(Exception $e) {
  17.     echo '';
  18. }
  19. ?>
  20. ];
  21. </script>

Si se fijan es simplemente que la comita al final del echo solo la agregue cuando todavia hay mas archivos, esto por que el script de javascript asi debe ir, realmente es lo primero que programo en php por eso no se como hacerlo, ojala me puedan ayudar, gracias
  #2 (permalink)  
Antiguo 26/04/2012, 09:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Recorrer directorio y agregar coma al final

Eso lo puedes hacer mucho más sencillo con JSON:
Código PHP:
Ver original
  1. <?php
  2. $directory = 'images/slider' . $row['imageName'];
  3. $photos = array();
  4. try {    
  5.     // Styling for images
  6.     foreach ( new DirectoryIterator($directory) as $item ) {            
  7.         if ($item->isFile()) {
  8.             $path =  $directory . "/" . $item;
  9.             $photos[] = array('image' => $path);
  10.         }
  11.     }
  12. }
  13. catch(Exception $e) {
  14. // aqui deberías hacer algo...
  15. }
  16. $jsonPhotos = json_encode($photos);
  17. ?>
  18. var photos = <?php echo $jsonPhotos; ?>;

Saludos.
  #3 (permalink)  
Antiguo 26/04/2012, 09:22
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Respuesta: Recorrer directorio y agregar coma al final

excelente, solo que el resultado de photos me lo pone asi:
var photos = [{"image":"images\/slider\/imagen1.jpg"},{"image":"images\/slider\/imagen2.jpg"},{"image":"images\/slider\/imagen3.jpg"},{"image":"images\/slider\/imagen4.jpg"}];

con un \ antes de cada / ...es normal? porque no funciona el slide
  #4 (permalink)  
Antiguo 26/04/2012, 09:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Recorrer directorio y agregar coma al final

Es muy raro, ¿estas usando el código tal cual? prueba usar stripslashes en la variable, aunque se me hace muy extraño que te agregue esos \ ya que no debería...
  #5 (permalink)  
Antiguo 26/04/2012, 09:27
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Respuesta: Recorrer directorio y agregar coma al final

si, tal cual, el php esta dentro de un script, te paso el codigo completo:

Código PHP:
Ver original
  1. <script>
  2.                 var slideshowSpeed = 1000;
  3.                     <?php
  4.                     $directory = 'images/slider' . $row['imageName'];
  5.                     $photos = array();
  6.                     try {    
  7.                         // Styling for images
  8.                         foreach ( new DirectoryIterator($directory) as $item ) {            
  9.                             if ($item->isFile()) {
  10.                                 $path =  $directory . "/" . $item;
  11.                                 $photos[] = array('image' => $path);
  12.                             }
  13.                         }
  14.                     }
  15.                     catch(Exception $e) {
  16.                     // aqui deberías hacer algo...
  17.                     }
  18.                     $jsonPhotos = json_encode($photos);
  19.                     ?>
  20.                     var photos = <?php echo $jsonPhotos; ?>;
  21.                 </script>
  #6 (permalink)  
Antiguo 26/04/2012, 09:28
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Respuesta: Recorrer directorio y agregar coma al final

y te paso el codigo resultante:

Código HTML:
Ver original
  1.                 var slideshowSpeed = 1000;
  2.         var photos = [{"image":"images\/slider\/imagen1.jpg"},{"image":"images\/slider\/imagen2.jpg"},{"image":"images\/slider\/imagen3.jpg"},{"image":"images\/slider\/imagen4.jpg"}];
  #7 (permalink)  
Antiguo 26/04/2012, 09:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Recorrer directorio y agregar coma al final

Pues según el formato de json es correcto agregar \ los / por lo que podrías quitarlos al final de la variable:
Código PHP:
Ver original
  1. $jsonPhotos = stripslashes(json_encode($photos));
  #8 (permalink)  
Antiguo 26/04/2012, 10:01
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Respuesta: Recorrer directorio y agregar coma al final

si, con eso quita los slashes pero lo que estaba viendo es que en el codigo
var photos = [{"image":"images/slider/imagen1.jpg"},{"image":"images/slider/imagen2.jpg"}];

deberia quedar image sin las comillas por que si no, el script no la toma correctamente
  #9 (permalink)  
Antiguo 26/04/2012, 13:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Recorrer directorio y agregar coma al final

Las comillas no infieren en nada, en Javascript es lo mismo:
Código Javascript:
Ver original
  1. var obj = { image : "image" };
  2. alert(obj.image);
  3. var obj = { "image" : "image" };
  4. alert(obj.image);

Saludos.

Etiquetas: coma, directorio, final
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 18:28.