Foros del Web » Programando para Internet » PHP »

Porblema con strtoupper()

Estas en el tema de Porblema con strtoupper() en el foro de PHP en Foros del Web. Hola a todos: Mi problema es con la función strtoupper(). La uso para poner en mayúsculas un texto que saco de mi base da datos. ...
  #1 (permalink)  
Antiguo 13/05/2005, 10:54
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 12 años, 11 meses
Puntos: 1
Porblema con strtoupper()

Hola a todos:
Mi problema es con la función strtoupper(). La uso para poner en mayúsculas un texto que saco de mi base da datos. Y lo hace muy bien... , pero si el texto tiene palabras con acentos, me pone todas las letras en mayúscula menos las letras con acentos que las deja en minúscula.
Ejemplo:
$texto= "hola, cómo estás...";
$texto_mayusculas=strtoupper("$texto");
echo "$texto_mayusculas";

El resultado es: HOLA CóMO ESTáS...

Como vereis no es muy estetico. A ver si me podeis ayudar.
Un saludo a todos.
  #2 (permalink)  
Antiguo 13/05/2005, 11:02
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Bueno este mensaje esta en php.net al respecto de esta funcion:
Nótese que las letras son definidad por el locale actual. Esto quiere decir que, por ejemplo, en el locale por defecto ("C"), los caracteres como la ñ no serán convertidos.

Usa esta funcion que hace lo mismo pero no da ese error:
Código PHP:
<?php
$texto
"hola, cómo estás...";
$texto_mayusculas=str_to_upper("$texto");
echo 
"$texto_mayusculas";

function 
str_to_upper($str){
   return 
strtr($str,
   
"abcdefghijklmnopqrstuvwxyz".
   
"\x9C\x9A\xE0\xE1\xE2\xE3".
   
"\xE4\xE5\xE6\xE7\xE8\xE9".
   
"\xEA\xEB\xEC\xED\xEE\xEF".
   
"\xF0\xF1\xF2\xF3\xF4\xF5".
   
"\xF6\xF8\xF9\xFA\xFB\xFC".
   
"\xFD\xFE\xFF",
   
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".
   
"\x8C\x8A\xC0\xC1\xC2\xC3\xC4".
   
"\xC5\xC6\xC7\xC8\xC9\xCA\xCB".
   
"\xCC\xCD\xCE\xCF\xD0\xD1\xD2".
   
"\xD3\xD4\xD5\xD6\xD8\xD9\xDA".
   
"\xDB\xDC\xDD\xDE\x9F");
}
?>
  #3 (permalink)  
Antiguo 17/05/2005, 07:06
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 12 años, 11 meses
Puntos: 1
Muchas gracias!!!!!!!!!!!

se me solucionó el problemas.
Hasta otra...
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 14:11.