Hay que tener en cuenta que str_replace() permite arrays como parámetros, por lo que se puede simplificar así:
Código php:
Ver original$wrong = array('á', 'é', 'í', 'ó', 'ú', 'ñ', 'Á', 'É', 'Í', 'Ó', 'Ú', 'Ñ', ' '); $right = array('a', 'e' ,'i', 'o', 'u', 'n', 'A', 'E', 'I', 'O', 'U', 'N', '');
De hecho, si revisas el manual:
http://www.php.net/str_replace
Entre las contribuciones de usuario puedes encontrar un códio para preparar el nombre de archivo:
Código php:
Ver originalfunction preparar_nom_archivo($nom_archivo)
{
$arr_busca = array(' ','á','à','â','ã','ª','Á','À', 'Â','Ã', 'é','è','ê','É','È','Ê','í','ì','î','Í',
'Ì','Î','ò','ó','ô', 'õ','º','Ó','Ò','Ô','Õ','ú',
'ù','û','Ú','Ù','Û','ç','Ç','Ñ','ñ');
$arr_susti = array('-','a','a','a','a','a','A','A', 'A','A','e','e','e','E','E','E','i','i','i','I','I',
'I','o','o','o','o','o','O','O','O','O','u','u','u',
'U','U','U','c','C','N','n');
return preg_replace('/[^A-Za-z0-9\_\.\-]/', '', $nom_archivo); }