No mostrar el formato al listar unos archivos (php) Leido 11.780 veces

 
  Broco
Pregunta
Resuelta.
Tengo pues



if ($gestor = opendir('./musica')) {
echo "<br><br>";
while (false !== ($archivo = readdir($gestor))) {
echo "$archivo<br>";
}
while ($archivo = readdir($gestor)) {
echo "<a href=\"mp3s/$archivo\">$archivo</a><br>";
}
closedir($gestor);
}


Pero al final de cada archibo sale .mp3 no quiero que salga eso :(

 

 





  !!r0Nk0!!
Respuesta correcta
Ha recibido:
1 premios
MODIFICADO ESPACIOS QUE ERAN "+"



$dir='musica/';
if ($gestor = opendir($dir)) {
echo "<br><br>";
while (false !== ($archivo = readdir($gestor))) {
$archivo = substr($archivo, 0, strlen($archivo) - 4);
echo "$archivo<br>";
}
while ($archivo = readdir($gestor)) {
echo "<a href=\"mp3s/$archivo\">$archivo</a><br>";
}
closedir($gestor);
}



Pero por lo que ví en el cídigo parece que los quieres listar y que la gente los descargue, si es así esto es mejor ya que el anterior código no te va a funcionar la parte de poner el link. Si quieres que muestre todos sea cual sea la extensión elimina lo que está en rojo. Y si quieres otra extensión en vez de .mp3, lo cambias por la que quieras

MODIFICADO AHORA VA TODO:



// lee los .mp3 del directorio
$dir= 'musica/';
if ($dh = opendir($dir)) {
$files = array();
while (($file = readdir($dh)) !== false) {
if (substr($file, strlen($file) - 4) == '.mp3') {
array_push($files, $file);
}
}
closedir($dh);
}

// Ordena y muestra los archivos
sort($files);
echo "<ul>\n";
foreach ($files as $file) {
$title = Title($file);
echo "<li><a href=\"$dir$file\" title=\"$title\">$title</a></li>\n";
}
echo "</ul>\n";

// Funcion devuelve el título.
function Title($filename) {
$title = substr($filename, 0, strlen($filename) - 4);
$title = str_replace('-', ' ', $title);
$title = ucwords($title);
return $title;
}


 

 


  !!r0Nk0!!
Respuesta correcta
Ha recibido:
1 premios
MODIFICADO ESPACIOS QUE ERAN "+"



$dir='musica/';
if ($gestor = opendir($dir)) {
echo "<br><br>";
while (false !== ($archivo = readdir($gestor))) {
$archivo = substr($archivo, 0, strlen($archivo) - 4);
echo "$archivo<br>";
}
while ($archivo = readdir($gestor)) {
echo "<a href=\"mp3s/$archivo\">$archivo</a><br>";
}
closedir($gestor);
}



Pero por lo que ví en el cídigo parece que los quieres listar y que la gente los descargue, si es así esto es mejor ya que el anterior código no te va a funcionar la parte de poner el link. Si quieres que muestre todos sea cual sea la extensión elimina lo que está en rojo. Y si quieres otra extensión en vez de .mp3, lo cambias por la que quieras

MODIFICADO AHORA VA TODO:



// lee los .mp3 del directorio
$dir= 'musica/';
if ($dh = opendir($dir)) {
$files = array();
while (($file = readdir($dh)) !== false) {
if (substr($file, strlen($file) - 4) == '.mp3') {
array_push($files, $file);
}
}
closedir($dh);
}

// Ordena y muestra los archivos
sort($files);
echo "<ul>\n";
foreach ($files as $file) {
$title = Title($file);
echo "<li><a href=\"$dir$file\" title=\"$title\">$title</a></li>\n";
}
echo "</ul>\n";

// Funcion devuelve el título.
function Title($filename) {
$title = substr($filename, 0, strlen($filename) - 4);
$title = str_replace('-', ' ', $title);
$title = ucwords($title);
return $title;
}


 

 


  Broco
Ok ronko dpm lo unico malo es que los enalza mal, osea no los enlaza de la carpeta musica los enlaza de la carpeta donde esta..

 

 


  !!r0Nk0!!
Ha recibido:
1 premios
He modificado el codigo inicial ahora va todo, y muestra solo los .mp3 que había quitado sin querer esa parte a si que mira a ver que código copiaste.
 

 





  Broco
ok ahora si :) muchisimas gracias.
 

 


  Broco
cuando pongo el código que no enlaza no funcionan los espacios, osea con el código que yo puse al principio si te fijas si la canción se llama "01 prueba.mp3" se pone todo normal, pero con el que me as pasado sale
01+prueba osea que no funcionan los espacios con el de los enlaces si pero con el de sin enlaces no..

 

 


  !!r0Nk0!!
Modificado, ahora deberían ser espacios en vez de "+"
 

 


  Invitado
That's a brilliant answer to an interesintg question
 

 


  Invitado
Weeeee, what a quick and easy slouoitn.
 

 








    ¿Cuantas columnas?     | 2 columnas | 3 columnas | 4 columnas | 5 columnas | 6 columnas |  
    Escribe la dirección web de la imagen:
  Publica tu respuesta  |  Haz Click en el siguiente cuadro para escribir