Suscribete →
switch y expresiones regulares
la mayorÃa de cosas no te las enseñan cuando estas estudiando, ahà solo aprendes la base, todo lo demás te lo vas encontrando de casualidad, hace un tiempo encontré como hacer un switch con expresiones regulares
el siguiente ejemplo es una función para saber el tipo de fichero (canción, vÃdeo, imagen o texto) :
PHP:
-
function descripcion_fichero($fichero){
-
switch(true){
-
return 'Fichero de música';
-
break;
-
return 'Fichero de video';
-
break;
-
return 'Fichero de imagen';
-
break;
-
return 'Fichero de texto';
-
break;
-
default:
-
return 'Fichero desconocido';
-
break;
-
}
-
}
nota sobre la función:
si no se reconoce el tipo de fichero esta devolvera "Fichero desconocido"
si no usáramos la expresión regular...
- tendrÃamos que separar la extensión del nombre del fichero
- convertir el resultado a mayúsculas
- y luego pasarlo por el switch, quedando algo asÃ:
PHP:
-
function descripcion_fichero($fichero){
-
//separar nombre fichero de la extension
-
-
switch($extension){
-
case 'WAV':
-
case 'MP3':
-
case 'WMA':
-
return 'Fichero de música';
-
break;
-
case 'MPG':
-
case 'AVI':
-
case 'RM':
-
return 'Fichero de video';
-
break;
-
case 'JPG':
-
case 'BMP':
-
case 'PNG':
-
case 'GIF':
-
return 'Fichero de imagen';
-
break;
-
case 'TXT':
-
case 'DOC':
-
case 'PDF':
-
return 'Fichero de texto';
-
break;
-
default:
-
return 'Fichero desconocido';
-
break;
-
}
-
}
Eregi es muy costoso en tiempo. Es mejor no usarlo, si hay otras funciones para extraer la extensión del archivo, cómo por ejemplo “pathinfo”
function descripcion_fichero($fichero){
$extension = strtolower(pathinfo($fichero,PATHINFO_EXTENSION));
switch($extension){
case ‘wav’: case ‘mp3′: case ‘wma’:
return ‘Fichero de música’; break;
case ‘mpg’: case ‘avi’: case ‘rm’:
return ‘Fichero de video’; break;
case ‘jpg’: case ‘bmp’: case ‘png’: case ‘gif’:
return ‘Fichero de imagen’; break;
case ‘txt’: case ‘doc’: case ‘pdf’:
return ‘Fichero de texto’; break;
default:
return ‘Fichero desconocido’; break;
}
}