Foros del Web » Programando para Internet » PHP »

Imprimir distinto en la ultima linea

Estas en el tema de Imprimir distinto en la ultima linea en el foro de PHP en Foros del Web. Hola, estoy sufriendo y vengo a ver si por acá encuentro ayuda, miren hace tiempo solicite por acá que me ayudaran con un script que ...
  #1 (permalink)  
Antiguo 22/01/2007, 12:35
Avatar de RoQ
RoQ
 
Fecha de Ingreso: abril-2005
Mensajes: 771
Antigüedad: 19 años
Puntos: 0
Imprimir distinto en la ultima linea

Hola, estoy sufriendo y vengo a ver si por acá encuentro ayuda, miren hace tiempo solicite por acá que me ayudaran con un script que me lea las imágenes que están en un directorio y me arroje una cadena de texto indicando el nombre y tamaño de cada una de las imágenes, el código en si es el siguiente
Código PHP:
<?php
  $albums
"albums/oct06/";
  
$dirr=opendir($albums);
  while (
$file=readdir($dirr)) {
    if (
$file!='..' && $file!='.' && $file!='' && $file!='index.php')
    {
     if (
is_dir($file)) {
        } 
        elseif (
substr($file,-4) == ".jpg" OR substr($file,-4) == ".gif" OR substr($file,-4) == ".png") {
            
$size getimagesize($albums.$file);
            echo 
"\nnew Array ("."\"".$file."\"".","."\"".$size[0]."\"".","."\"".$size[1]."\"".","."\"\" ),";
        }
    }
  }
  
closedir($dirr);
?>
La cadena que arroja se ve en esta línea:
Código PHP:
            echo "\nnew Array ("."\"".$file."\"".","."\"".$size[0]."\"".","."\"".$size[1]."\"".","."\"\" ),"
Mi problema es que este listado que arroja es para complementar un código en JavaScript, y necesito que la ultima lineaque arroje no tenga una coma (,) al final, es decir si hay tres imágenes me bota lo siguiente:
Código:
new Array ("img001.jpg","420","315","" ), 
new Array ("img002.jpg","420","315","" ), 
new Array ("img003.jpg","420","315","" ),
Y necesito que me bote:
Código:
new Array ("img001.jpg","420","315","" ), 
new Array ("img002.jpg","420","315","" ), 
new Array ("img003.jpg","420","315","" )
Ósea que la gran pregunta es ¿Cómo hago que no me ponga la coma (,) en la ultima foto?
Muchisimas gracias por adelantado
  #2 (permalink)  
Antiguo 22/01/2007, 13:42
Avatar de uk.
uk.
 
Fecha de Ingreso: octubre-2006
Mensajes: 39
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Imprimir distinto en la ultima linea

Podrias hacer un scan al directorio solo para saber cuantos archivos tienes, y asi determinar el numero del archivo final..

Código PHP:
$albums"albums/oct06/";
$contador=0;
if (
$dir opendir($albums)) {
         while (
false !== ($archivo readdir($dir))) {
              if (
$archivo != "." && $archivo != ".." && $archivo!= "index.php") {
                        
$contador++;
               } 
          }
                
closedir($dir);
     } 
  #3 (permalink)  
Antiguo 22/01/2007, 15:22
Avatar de RoQ
RoQ
 
Fecha de Ingreso: abril-2005
Mensajes: 771
Antigüedad: 19 años
Puntos: 0
Re: Imprimir distinto en la ultima linea

Gracias uk. por tu respuesta, de la idea de contar se me ocurrió crear una variable con los datos del echo pero sin la coma que quiero quitar, así que la parte del echo a dejo así:
Código PHP:
echo "\nnew Array ("."\"".$file."\"".","."\"".$size[0]."\"".","."\"".$size[1]."\"".","."\"\" ),";
$ultimo"\nnew Array ("."\"".$file."\"".","."\"".$size[0]."\"".","."\"".$size[1]."\"".","."\"\" )"
Entonces al final le pongo un "echo $ultimo;" y logro que la ultima línea tenga salga sin la coma, pero se me duplica la ultima foto.

Entonces supongo que de alguna manera se puede hacer que no se muestre la ultima línea de modo que cuando se imprima la variable ultimo esta quede como ultima línea, o que con alguna función retroceder y borrar la condenada coma(,)
Como se vera soy muy nuevo en PHP

Gracias
  #4 (permalink)  
Antiguo 23/01/2007, 03:57
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Imprimir distinto en la ultima linea

Bueno, primero..

Código PHP:
if (is_dir($file)) {
        } 
        elseif 
Eso es una chapuza, bien puedes usar !is_dir($file) para evitarte esas llaves inescesarias..

Segundo, ese codigo no mostrará si hay imagenes con extension .jpeg

Ahora si a tu duda.. lo que yo haria, seria que en lugar de mostrar las imagenes tal coo las lees, primero las guardaria en un array para despues mostrarlas con un for; este bucle podria ser algo como:

Código PHP:
for($i 0$i<count($array_de_imagenes); $i++) {
$size getimagesize($albums.$array_de_imagenes[$i]);
            echo 
"\nnew Array ("."\"".$file."\"".","."\"".$size[0]."\"".","."\"".$size[1]."\"".","."\"\" )";
if(
$i count($array_de_imagenes)) echo ",";

Creo que seria algo asi..
__________________
Sin Ideas
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 21:19.