Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/10/2013, 09:28
nksn
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 14 años, 11 meses
Puntos: 12
Mensaje Respuesta: Listar archivos de Sub directorios

para no romperse el "coco", una solución simple, aunque ten en cuenta que hará búsquedas multi-dimensionales y no es una buena practica el "overcall"

Código PHP:

function get_music_arr($directory$filter '.mp3')
{
    
$items = array();

    if(
$d dir($directory))
    {
        while(
$entry $d->read()) 
        {
            
$ps strpos(strtolower($entry), $filter); 
            if(
$ps !== false)
            {
                
$items[] = $entry;
            }

            if(
is_dir($directory.'/'.$entry))
            {
                
$items[$entry] = get_music_arr($directory.'/'.$entry);
            }
        }  
    }

    
$d->close(); 

    
sort($items);

    return 
$items;
}


$items get_music_arr($_GET['music']); 
con eso obtendrás un array con varios niveles de profundidad, suponiendo que tu script no soporta carpetas en xml

Código PHP:

$anotation = 0;
function print_data($data,  $path)
{
    global $anotation;

    foreach($data as $key => $value)
    {
        if(is_array($value))
        {
            print_data($value, $path.'/'.$key);
        }
        else
        {
            $anotation++;
            
            echo "        <track>\n"; 
            echo "            <annotation>".$anotation.". ".end(explode(".mp3", $value,-1))."</annotation>\n"; 
            echo "            <location>".$path.'/'.$value."</location>\n"; 
            echo "            <info></info>\n"; 
            echo "        </track>\n";
        }
    }


}

header("content-type:text/xml;charset=utf-8"); 

echo "<?xml version='1.0' encoding='UTF-8' ?>\n"; 
echo "<playlist version='1' xmlns='http://xspf.org/ns/0/'>\n"; 
echo "    <title>Sample PHP Generated Playlist</title>\n"; 
echo "    <info>http://www.jeroenwijering.com/</info>\n"; 
echo "    <trackList>\n"; 

print_data($items, $_GET['music'])

// .. and last we add the closing tags 
echo "    </trackList>\n"; 
echo "</playlist>\n";

nota: El código no lo revise, aunque debería funcionar