Mayúsculas y minúsculas en PHP
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: [@MORE@]
<?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.
- faemino Gracias por este apunte, me ha ido genial. PD: Cuanto tiempo sin pasar por aquí :-)
- Erloquito 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
- Fabricio Matamoros Tambien puedes utilizar el comando ucwords(hola) = Hola
- Elisa V Gracias,me resultó muy productivo.
- Fire lord Buena ayuda
- Fabricio Matamoros Fabricio Matamoros y Paola de la Torre se Aman
- antonio Realmente ayuda, gracias por la sugerencia. Lo usé además para cambiar letras con tildes, para mayúsculas sin tilde.Ej.Imprime: XAYAZA
- Antonio No hagas caso al slash
- Fabricio Matamoros
- pingo otra opcion es colocar la codificacion \"iso-8859-1\" en el charset, esto quedaria completo en la siguiente linea, la cual va situada entre .<meta "="" "content-type\"="" "text="" charset="iso-8859-1\" content="\" html;="" http-equiv="\">con esto funciona perfectamnetnte el primer ejemplo de esta pagina, es decir escribe bien los acentos y tilse de las ñ o Ñ.Saludos.
- fabrizzio Fabrizzio M. y Paola M. Se Aman
- John Hernan erloquito, agradezco enormemente tu aporte. Con la solución que das, he resuelto un enorme problema.
- raimon 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<count($name);$i++) ",$name2);="" $continuacio="mb_substr($name[$i]," $inicial="strtr(strtoupper(mb_substr($name[$i]," $name2[]="$inicial.$continuacio;" 0,="" 1)),"àáâãäåæçèéêëìíîïðñòóôõöøùüú","ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ");="" 1,="" implode("="" return="" strlen($name[$i])-1);="" {="" }=""></count($name);$i++)>
- mily quisiera que me ayudan quiero la funcion que me haga convertir el texto en minuscula, mayuscula intercalado.gracias
- KncELL Justo lo que andaba buscando, no me quedo del todo claro el code de raimon. Pero no me urge eso ahora xD
- Carlos Leon Gracias por el aporte compañero me sacastes un gran peso de encima saludos
- xnex Gracias muy buen apunte
- YESYES70 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
- asd muy buenos apuntes
- shuberth Bendita codificación, problema tan cencillo de resolver, pero que puede dar dolores de cabeza; saludos shuberth chi balam. www.shuberth.net
- Martin Graglia 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
- Sr_Towers Muy bien,Excelente solución.
- Wlises Excelente aporte, gracias.
- Jose Raul Muy bueno, gracias
- Ditmar Me fue de ayuda gracias
- gonzalo Muy bueno!!!!! me ayudaste muchisimo, rápido y directo al grano
- mesnit function get_tot_majuscules($cadena){ $cadena=mb_strtoupper($cadena, 'UTF-8'); return $cadena;}probar esto, pasa también los acentos. En éste caso es a mayúsculas