Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] poner letra con tilde en minúscula

Estas en el tema de poner letra con tilde en minúscula en el foro de PHP en Foros del Web. Hola! se me presentó el siguiente problema: Tengo almacenado en una tabla (mysql) nombres de personas, todos escritos en mayúscula y con sus respectivas tildes ...
  #1 (permalink)  
Antiguo 15/01/2014, 09:46
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 8 meses
Puntos: 4
Pregunta poner letra con tilde en minúscula

Hola!
se me presentó el siguiente problema:

Tengo almacenado en una tabla (mysql) nombres de personas, todos escritos en mayúscula y con sus respectivas tildes según corresponda.

Al hacer un
Código PHP:
Ver original
  1. echo $nombrePersona;
lo hago de la siguiente manera:

Código PHP:
Ver original
  1. ucwords(strtolower($nombrePersona));

El problema es que lo muestra así: JosÉ TomÁs LarraÍn Álvarez

no se como lograr que las letras con tilde salgan en minúscula.

He buscado info y no he dado con ninguna alguna solución a este problema.
  #2 (permalink)  
Antiguo 15/01/2014, 09:56
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 6 meses
Puntos: 397
Respuesta: poner letra con tilde en minúscula

Usa mb_strtolower y la alternativa de uwords, sería algo como

Código PHP:
Ver original
  1. mb_convert_encoding(mb_convert_case($str, MB_CASE_TITLE), "UTF-8");

Donde $str en la cadena resultante de haber usado mb_strtolower

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 15/01/2014, 10:04
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 8 meses
Puntos: 4
Respuesta: poner letra con tilde en minúscula

Hola! aplique tu solución pero ahora se muestra así:

SofÃ*a Antonia Trigo Gaete
  #4 (permalink)  
Antiguo 15/01/2014, 10:08
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 6 meses
Puntos: 397
Respuesta: poner letra con tilde en minúscula

Bueno, puedes usar esta función:

Código PHP:
Ver original
  1. function capitalize($str, $encoding = 'UTF-8') {
  2.     return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) . mb_strtolower(mb_substr($str, 1, mb_strlen($str), $encoding), $encoding);
  3. }
  4.  
  5. echo capitalize('JosÉ TomÁs LarraÍn ÁlvaszzSSD'); //José tomás larraín álvaszzssd

Ojo que el Charset de esa pagina debe de ser UTF-8 para que no aparezcan los símbolos extraños.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 15/01/2014, 10:15
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 8 meses
Puntos: 4
Respuesta: poner letra con tilde en minúscula

La solución que me diste inicialmente estaba perfecta. El problema me lo aclaraste cuando mencionaste lo del Charset.

Yo tenía puesto esto:

Código PHP:
Ver original
  1. header('Content-Type: text/html; charset=iso-8859-1');

Lo dejé así:
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

y ahora funciona perfecto.
Muchas gracias jonni09lo
  #6 (permalink)  
Antiguo 15/01/2014, 10:16
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 6 meses
Puntos: 397
Respuesta: poner letra con tilde en minúscula

Me alegra que te haya servido

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.

Etiquetas: letra, mysql, tabla, tilde
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 16:28.