Pues ahí va, es algo muy básico y fácil de entender.
Código:
/*Validar formato.*/
for($i=0; $i<count($_FILES[userfile][tmp_name]); $i++){
$name = $_FILES[userfile][name][$i];
$error="";
$cuantosgui=0;
$cuantosparab=0;
$cuantosparce=0;
$cuantosesp=0;
$segp=0;
$cuantospunt=0;
$cuantascom=0;
// comprobar cuántos guiones hay
for($i=0;$i<200;$i++){
if(strcmp($name[$i],"-")==0){
$cuantosgui++;
}
}
// comprobar cuántos paréntesis abiertos hay
for($i=0;$i<200;$i++){
if(strcmp($name[$i],"(")==0){
$segp=$i;
$cuantosparab++;
}
}
// comprobar cuántos paréntesis cerrados hay
for($i=0;$i<200;$i++){
if(strcmp($name[$i],")")==0){
$cuantosparce++;
}
}
// comprobar cuantos puntos hay
for($i=0;$i<200;$i++){
if(strcmp($name[$i],".")==0){
$cuantospunt++;
}
}
// comprobar cuantas comillas hay
for($i=0;$i<200;$i++){
if(strcmp($name[$i],"'")==0){
$cuantascom++;
}
}
$errornomb=0;
$j=0;
$segp=$segp+1;
while(($name[$segp]!= ")")&&($name[$segp]!= ";")){
if(strcmp($name[$segp], $uname[$j]) != 0){
$errornomb=1;
}
$segp++;
$j++;
}
if($cuantosgui!= 3){
$error= "El archivo $name debe de tener 3 guiones normales y tiene $cuantosgui giones.";
}
elseif($cuantosparab != 2){
$error= "El archivo $name debe de tener un paréntesis abierto antes del número de canción y otro antes de tu nick pero tiene $cuantosparab paréntesis. Un ejemplo: album-(3)-título_(tunick) ";
}
elseif($cuantosparce != 2){
$error= "El archivo $name debe de tener un paréntesis cerrado después del número de canción y otro después de tu nick pero tiene $cuantosparce paréntesis. Un ejemplo: album-(3)-título_(tunick) ";
}
elseif($errornomb){
$error= "Recuerda poner tu nombre entre paréntesis al final de la canción seguido de un _: nombrecancion_($uname)";
}
elseif($cuantospunt!= 1){
$error= "El nombre de la canción sólo puede tener un punto al final seguido de la extensión: cancion.mp3";
}
elseif($cuantascom!= 0){
$error= "El nombre de la canción no puede tener comillas simples";
}
if($error!= ""){
......
.....
}
}// del for
Me imagino que con una expresión regular me ahorro casi todo el código, pero esque no sé de expresiones regulares y eso me funciona bien. Los mensajes de error individuales estaría bien que se mostraran.