Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2012, 12:08
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 1 mes
Puntos: 28
Pregunta Leer imágenes de nombre similar en un directorio

Buenas tardes a todos,

En primer lugar decir que llevo la cabeza que me explota, diez días dándole vueltas al asunto a ver si consigo crear el script que necesito y no hay manera!!

Supongo que lógicamente esto es debido a que me faltan conocimientos.

Me gustaría plantear aquí a los amigos de forosdelweb la meta que quiero alcanzar con el script a ver si me sugieren algún método sencillo.


Tengo un directorio imágenes donde almaceno archivos que tienen cierta parte de su nombre en común:

Código:
Imagen 1_fecha_autor_idioma.jpg
Imagen 1_fecha_autor_idioma_HQ.jpg
Imagen 1_fecha_autor_idioma_LQ.jpg

Y aquí va la función de mi clase Files que he planteado hasta ahora:

Código PHP:
public function getFiles($dir=null$recurse=false$depth=false)
    {
        if (
$dir == null)
        {
            
$dir $this->dir;
            if(
substr($dir, -1) != "/"$dir .= "/";
        }
        
        
//abro el directorio
        
$d = @dir($dir) or die("Failed opening directory $dir for reading");
        
        
//recorro el directorio obteniendo las imagenes
        
while(false !== ($entry $d->read())) {
            if(
$entry[0] == ".") continue;
            
            if(!
is_dir("$dir$entry")) {
                
                
$file $dir.$entry;
                
$pathInfo pathinfo($file);

                
//obtengo todos los datos que necesito de cada una de las imagenes                
                
$fileBaseName $pathInfo['basename'];
                
$fileName $pathInfo['filename'];
                
$fileDirName $pathInfo['dirname'];
                
$fileExtension $pathInfo['extension'];
                
$fileSize $this->sizeFormat(filesize($file));
                
$fileLastMod filemtime($file);


                
//[0] = Name, [1] = Date, [2] = Author, [3] = Lang, [4] = Quality

                //obtengo el nombre raiz de la imagen, es decir, sin la parte que indica la calidad (HQ, LQ)
                
$fileInfo explode('_'$fileName);
                
$fileInfo $fileInfo[0].'_'.$fileInfo[1].'_'.$fileInfo[2].'_'.$fileInfo[3];
                
                
//Si el nombre raiz de la imagen actual no está en el array $this->files entonces la guardo en dicho array 
                
if (!in_array($fileInfo$this->files))
                {
                    
                    
$this->files[] = array($fileInfo => array(
                        
'name' => $fileName,
                        
'extension' => $fileExtension,
                        
'fullName' => $fileBaseName,
                        
'size' => $fileSize,
                        
'lastMod' => $fileLastMod,
                        
'dir' => $fileDirName
                    
)                    
                    );
                }

            }
            
        }
        
$d->close();
        
print_r($this->files);
    } 
Como podéis ver he hecho un planteamiento pero que hasta ahora no cumple con el objetivo planteado.

En resumen, lo que persigo es agrupar las imágenes con nombre similar pero diferenciando las que son HQ y LQ (alta y baja calidad) de manera que luego pueda mostrar la imagen sin calidad como un thumnail y debajo de dicho thumbnail enlaces de descarga a su HQ y LQ.


Espero que se haya entendido el problema, estaré por aquí para resolver cualquier cuestión que tengan acerca de dicho script.


Gracias y un saludo.