Foros del Web » Programando para Internet » PHP »

Comprobar que un nombre no tenga ñ, tildes o espacios

Estas en el tema de Comprobar que un nombre no tenga ñ, tildes o espacios en el foro de PHP en Foros del Web. Hola quiero cargar imagenes y archivos, y quiero ponerle como condición, para evitar problemas, que en el nombre del archivo y de la imagen no ...
  #1 (permalink)  
Antiguo 13/06/2010, 05:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 186
Antigüedad: 18 años, 5 meses
Puntos: 1
Sonrisa Comprobar que un nombre no tenga ñ, tildes o espacios

Hola

quiero cargar imagenes y archivos, y quiero ponerle como condición, para evitar problemas, que en el nombre del archivo y de la imagen no haya ni la ñ, ni tildes ni espacios.

Es decir

"mi fichero á.jpg" no valdría, ni "niño.jpg", o escribe "mificheroa.jpg" o "nino.jpg" por ejemplo, o tiene que devolverme un valor false si el nombre del fichero no es el adecuado.

Yo sé el nombre del fichero, así que lo que necesito es a una variable, comprobar lo de la ñ, la tilde y el espacio.

Saludos
  #2 (permalink)  
Antiguo 13/06/2010, 07:11
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Comprobar que un nombre no tenga ñ, tildes o espacios

En lugar de obligar al usuario a cambiar el nombre del fichero por qué no lo cambias tu dinamicamente y le das el nombre que quieras. Recuerda que esta es una buena técnica para evitar nombres de archivos duplicados.

Puedes usar un sistema para crear nombres unicos de los archivos subidos por ej. con uniqid().
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 13/06/2010, 12:46
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Comprobar que un nombre no tenga ñ, tildes o espacios

Apoyando la sugerencia de Santris...podrías usar algo así:

Código PHP:
Ver original
  1. $str='mi fichero á.jpg';
  2. $sea=array(' ','ñ','Ñ','Á','á','É','é','Í','í','Ó','ó','Ú','ú');
  3. $rep=array('-','n','N','A','a','E','e','I','i','O','o','U','u');
  4. $str=str_replace($sea,$rep,$str);
  5.  
  6. echo $str;//imprime: mi-fichero-a.jpg
  7.  
  8. //cuando $str='niño.jpg'; imprime: nino.jpg

A $sea/$rep puedes agregar más caracteres problemáticos, como à,è,Ì,ö, etc.
  #4 (permalink)  
Antiguo 13/06/2010, 12:59
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Comprobar que un nombre no tenga ñ, tildes o espacios

Agrego, si aún quieres hacerlo a tu modo usa esto:


Código PHP:
Ver original
  1. if(preg_match('/^([a-zA-Z0-9\-\_\.]+)$/i',$str)){echo 'nombre de archivo válida';
  2. }else{echo 'nombre de archivo inválido';}

Solo aceptará caracteres alfanuméricos, guiones y puntos, sin caracteres especiales ni acentos

Etiquetas: comprobar, espacios, nombre, tildes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.