Comunidad de diseño web y desarrollo en internet online

Como agrupar archivos segun el tipo?

Citar            
MensajeEscrito el 24 Abr 2011 03:27 am
Saludos!
Mi problema es el siguiente, con la ayuda de php leo el contenido de un carpeta que contiene muchos archivos de música. Todos inician con el formato año-titulo.mp3. Ahora lo que quiero lograr es que a medida voy obteniendo el listado de los archivos, poder imprimir texto antes y despues de cada año. Así crear grupos, esto con la finalidad de generar un xml.

Por ejemplo:

<Inicia 2008>
2008...titulo.mp3
2008...titulo.mp3
2008...titulo.mp3
<Termina 2008>

<Inicia 2009>
2009...titulo.mp3
2009...titulo.mp3
2009...titulo.mp3
<Termina 2009>

<Inicia 2010>
2010...titulo.mp3
.......
<Termina 2010>

Descartemos el uso de base de datos por motivos de fuerza mayor. Aquí el código que he podido generar pero al final me redunda los datos.

Código PHP :

$path="D:\wamp\www\leyendo\esto";
$dir=dir($path);
$contador=0;
$concatenar="";
$ano=2007;
$grupo = array();


   while ($elemento = $dir->read())
   {
      $laExtension=strtolower(end(explode('.',$elemento)));            
      if (($laExtension == 'mp3') and ($elemento != '.') and ($elemento != '..')){

         $ano_variante = substr($elemento, 0, 4)."<br/>";
                  
         if($ano_variante!=$ano){ // Cuando cambie el año
            $ano=$ano_variante;
            if($contador==0){ //Intento crear el primer grupo en el array. arrya[0(abriendo),1(info),2(cerrando)]
            $contador_abrir=$contador;
            $contador_info=$contador_abrir+1;
            $contador_cerrar=$contador_info+1;
            
            $grupo[$contador_abrir]="Inicia";
            $grupo[$contador_cerrar]="Termina";
                              
            }else{//intento crear los demas grupos.
            $contador_abrir=$contador*3;
            $contador_info=$contador_abrir+1;
            $contador_cerrar=$contador_info+1;               

            $grupo[$contador_abrir]="Inicia";
            $grupo[$contador_cerrar]="Termina";
            }         
            $contador++;   
         }

         $concatenar.="<br/>".$elemento;
         $grupo[$contador_info]=$concatenar;

      }
   }
$dir->close();
print_r ($grupo);


El objetivos principal es: Como imprimir texto antes y despues para encerrar cada grupo según el añó?
Les pido por favor puedan ayudarme con ejemplos para poder encontrar solución a mi problema. De antemano muchas gracias.

Por JEGA

0 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Abr 2011 02:45 pm
tenia un ejemplo algo aprecido ahora haciendo algunos cambios seria algo asi

Código PHP :

<?php
$path="E:\MUSICA  LATINA\Ariztia"; 
$path = __DIR__;
//primero los resultados los adicionamos  aun array
$grupos = array(); 
//luego rrecorremos el directorio y sacamos los nombres de archivos
foreach(new DirectoryIterator($path) as $child)
{
   if($child->isFile())
   {
      //obtenemos el formato en cuestion año-titulo.mp3
      list($anho,$nombre) = sscanf($child->getFileName(), "%d-%s.mp3");
      //en caso de que no cumpla el formato saltamos el bucle
      if(is_null($anho) || is_null($nombre)){ continue;}
      if(!isset($grupos[$anho]))
      {
         $grupos[$anho] = new ArrayIterator();
      }
      $grupos[$anho]->append($nombre);
   }
}
echo '<pre>';
ksort ($grupos);
var_dump($grupos);
krsort($grupos);
var_dump($grupos);
echo '</pre>';

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.