Mayúsculas y minúsculas en PHP - Userlinux.net

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 ó…

Mayúsculas y minúsculas en PHP

28.Dec.2006 ~ 25 Comentarios ~ 45290 Lecturas
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.

Comentarios


gravatar
17.Jan.2007
Gracias por este apunte, me ha ido genial.

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

gravatar
Erloquito
26.Mar.2007
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
31.Oct.2007
Tambien puedes utilizar el comando ucwords(hola) = Hola

gravatar
Elisa V
07.Dec.2007
Gracias,me resultó muy productivo.

gravatar
Fire lord
19.Feb.2008
Buena ayuda

gravatar
11.Mar.2008
Fabricio Matamoros y Paola de la Torre se Aman

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

gravatar
Antonio
06.May.2008
No hagas caso al slash

gravatar
24.May.2008
echo strtr(strtoupper("xâyázà"), "àáâ", "AAA");
?>

gravatar
pingo
27.Jun.2008
otra opcion es colocar la codificacion "iso-8859-1" en el charset, esto quedaria completo en la siguiente linea, la cual va situada entre .

con esto funciona perfectamnetnte el primer ejemplo de esta pagina, es decir escribe bien los acentos y tilse de las ñ o Ñ.
Saludos.

gravatar
fabrizzio
22.Feb.2009
Fabrizzio M. y Paola M. Se Aman

gravatar
John Hernan
04.Apr.2009
erloquito, agradezco enormemente tu aporte. Con la solución que das, he resuelto un enorme problema.

gravatar
04.May.2009
La cosa se complica con acentos. Aquí teneis mi función para modificar nombres y apellidos para los formularios que necesitamos estos datos, y que el usuario, no le importa escribir si mayusculas, o minusculas.

function changeName($name)
{
$name = strtr(strtolower($name), "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ", "àáâãäåæçèéêëìíîïðñòóôõöøùüú");
$name = explode(" ",$name);
$name2 = array();

for($i=0;$i {
$inicial = strtr(strtoupper(mb_substr($name[$i], 0, 1)),"àáâãäåæçèéêëìíîïðñòóôõöøùüú","ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ");
$continuacio = mb_substr($name[$i], 1, strlen($name[$i])-1);
$name2[] = $inicial.$continuacio;
}
return implode(" ",$name2);
}

gravatar
mily
09.May.2009
quisiera que me ayudan quiero la funcion que me haga convertir el texto en minuscula, mayuscula intercalado.
gracias

gravatar
22.Jul.2009
Justo lo que andaba buscando, no me quedo del todo claro el code de raimon. Pero no me urge eso ahora xD

gravatar
Carlos Leon
11.Oct.2009
Gracias por el aporte compañero me sacastes un gran peso de encima saludos

gravatar
xnex
20.Nov.2009
Gracias muy buen apunte

gravatar
YESYES70
30.Dec.2009
COMO REALIZO LA FUNCIO QUE CUANDO PRECIONE EL BOTON DE GUARDAR UN REGISTRO O RELICE ALGUN CAMBIO GUARDE EL CAMPO EN MAYUSCULAS O CUANDO ESTE EN FUERA DE FOCO EL CAMPO REALICE EL CAMBIO.

GRACIAS

gravatar
16.Feb.2010
muy buenos apuntes

gravatar
01.Jul.2010
Bendita codificación, problema tan cencillo de resolver, pero que puede dar dolores de cabeza; saludos shuberth chi balam. www.shuberth.net

gravatar
04.Jul.2010
El aporte de Erloquito era justamente lo que estaba buscando. El tema de acentos lo solucioné con str_replace ('é', 'e', $value) cuando son nombres de carpetas, archivos, etc.
Para los nombres propios y otros datos que requieren mantener nombres uso

gravatar
Sr_Towers
15.Jul.2010
Muy bien,
Excelente solución.

gravatar
22.Feb.2011
Excelente aporte, gracias.

gravatar
Jose Raul
18.Jun.2011
Muy bueno, gracias

gravatar
Ditmar
24.Aug.2011
Me fue de ayuda gracias

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • Juan
  • Marina
  • Francisco
  • fon
  • minWi
  • isra
  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ssh frases champions userlinux iphone lugo rsidenotes felicidades films nintendo opinion sysadmin 2008 blogsfera vacaciones juegos cake ds debian sidenotes apple web blogs mac mysql cakephp deportes 2007 mundial openbsd barça ubuntu twitter blog humor meme canción alemania_2006 games bsd lucux linux twitt programación cumpleaños software django league bash macosx ps3 rfilms conciertos freebsd seguridad personal hack php bake futbol

Archivo

Social

Enlaces de interés