Si sos el unico que sube los archivos, estaria bien.. pero si otros lo suben puede ocurrir que usen el "." como separador en ves de espacio por ejemplo
Código:
http://www.tuweb.com/list/archivo.de.musica.mp3
Ahi creo que tomara mal debido aque el primer "." no es el que le corresponde a la extension.
Puedes probar tambien agregarle el
strpos
Aqui un Ejemplo
Código PHP:
Ver originalPor último, con strpos localizamos el inicio de una subcadena dentro de una cadena:
<?php
echo "<pre>";
$subcadena = "@";
$inicio_dominio = strpos ($cadena, $subcadena);
echo $inicio_dominio; // 4
echo "<br>";
$dominio = substr ($cadena, ($inicio_dominio+1)); echo $dominio; // imaginary.com
echo "</pre>";
?>
Fuente: http://www.ignside.net/man/php/strings2.php
Aunque puede haber otras maneras..
Como por ejemplo usando el que te expuse mas arriba y con el STRPOS le preguntas si la extension es el que tu quieres.
Ejemplo
Código PHP:
Ver original$partes_ruta = pathinfo('http://www.tuweb.com/mp3/archivo.de.musica.mp3');
echo $partes_ruta['dirname'] . "\n"; //Imprime http://www.tuweb.com/mp3
echo $partes_ruta['basename'] . "\n"; //Imprime archivo.de.musica.mp3
echo $partes_ruta['extension'] . "\n"; //Imprime mp3
//Entonces
if (!strpos($partes_ruta['extension'], "mp3")) { echo "El tipo de archivo no es correcto.";
}else{
echo "Ok. Continuemos xD.";
}
Es sencillo, pero creo que funcionara, y ahi ya no dependera de como este estipulado su nombre del archivo, puede ser que haya otras formas, pero creo que este como dije, sirve..
salu2