Mayúsculas y minúsculas en PHP
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.
Gracias por este apunte, me ha ido genial.
PD: Cuanto tiempo sin pasar por aquí :-)
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
Tambien puedes utilizar el comando ucwords(hola) = Hola
Gracias,me resultó muy productivo.
Buena ayuda
Fabricio Matamoros y Paola de la Torre se Aman
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
No hagas caso al slash
<?php
echo strtr(strtoupper(\"xâyázà\"), \"àáâ\", \"AAA\");
?>
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.


