Mayúsculas y minúsculas en PHP

28.dic 2006 Envía un trackback

Cuando contenido y diseño dependen de distinto personal suele haber pequeñas discrepancias a la hora de presentar información en una página web. Una de esas discrepancias suele ser por culpa de las mayúsculas. Hay muchos cargadores de datos que no se preocupan de si todo va en mayúsculas, minúsculas ó combinado (véase lenguaje sms).

A la hora de buscar una solución, como programador, he usado las funciones de php strtolower(), strtoupper() y ucfirst(), pero siempre con un pequeño problema en las vocales acentuadas, que no las reconoce como tal y, consecuentemente, no realiza el cambio:


<?php
  echo strtoupper("hola tío"); # HOLA TíO
  echo strtolower("hola TÍO"); # hola tÍo
  echo ucfirst(strtolower("hola TÍO")); # Hola tÍo
?>
 
Con esto quiero llegar a la solución perfecta (hasta la fecha), y es combinar el uso de las funciones anteriormente mencionadas con strstr(), obteniendo esta vez el resultado deseado:
<?php
  echo strtr(strtoupper("hola tío"), "àáâãäåæçèéêëìíîïðñòóôõöøùüú", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ"); # HOLA TÍO
  echo strtr(strtolower("HOLA TÍO"), "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ", "àáâãäåæçèéêëìíîïðñòóôõöøùüú"); # hola tío
?>
 
Imagino que, como todo en esta vida, será mejorable metiéndonos con las variables language, etc... pero de momento me ha sacado del apuro.
programacion developing

Comentarios
Gravatar faemino@17.01.2007, 'Re: Mayúsculas y minúsculas en PHP'

Gracias por este apunte, me ha ido genial.

PD: Cuanto tiempo sin pasar por aquí :-)

Gravatar Erloquito@26.03.2007, 'Re: Mayúsculas y minúsculas en PHP'

Espero que ayude, nunca esta demas tener estos apuntitos.

Para cambiar las primeras letras a mayusculas :

$nombres = "juan apablaza león";
$nombres = ucwords(strtolower($nombres));

El resultante seria Juan Apablaza León

Salu2

Gravatar Fabricio Matamoros@31.10.2007, 'Re: aay minúsculas en PHP'

Tambien puedes utilizar el comando ucwords(hola) = Hola

Gravatar Elisa V@07.12.2007, 'Re: Mayúsculas y minúsculas en PHP'

Gracias,me resultó muy productivo.

Gravatar Fire lord@19.02.2008, 'Re: Mayúsculas y minúsculas en PHP'

Buena ayuda

Gravatar Fabricio Matamoros@11.03.2008, 'Re: Mayúsculas y minúsculas en PHP'

Fabricio Matamoros y Paola de la Torre se Aman

Gravatar antonio@06.05.2008, 'Re: Mayúsculas y minúsculas en PHP'

Realmente ayuda, gracias por la sugerencia. Lo usé además para cambiar letras con tildes, para mayúsculas sin tilde.
Ej.
<?php
echo strtr(strtoupper(\"xâyázà\"), \"àáâ\", \"AAA\");
?>
Imprime: XAYAZA

Gravatar Antonio@06.05.2008, 'Re: Mayúsculas y minúsculas en PHP'

No hagas caso al slash

Gravatar Fabricio Matamoros@24.05.2008, 'Re: Mayúsculas y minúsculas en PHP'

<?php
echo strtr(strtoupper(\"xâyázà\"), \"àáâ\", \"AAA\");
?>

Gravatar pingo@27.06.2008, 'Re: Mayúsculas y minúsculas en PHP'

otra opcion es colocar la codificacion \"iso-8859-1\" en el charset, esto quedaria completo en la siguiente linea, la cual va situada entre <head> </head>.
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
con esto funciona perfectamnetnte el primer ejemplo de esta pagina, es decir escribe bien los acentos y tilse de las ñ o Ñ.
Saludos.


Escribe tu comentario
 
 
Guardar datos
Escribe tu comentario:
captcha


Intenta que tu comentario sea interesante y con información relevante al tema de la entrada. BBCodes disponibles: [url=http://direccion]texto[/url], negrita: [b]texto[/b], itálica: [i]texto[/i], subrayada: [u]texto[/u]. Para mencionar o citar a alguien (quote): [cita]texto[/cita]