Foros del Web » Programando para Internet » PHP »

Pasar a mayúsculas

Estas en el tema de Pasar a mayúsculas en el foro de PHP en Foros del Web. Hola, estoy buscando cómo hacer para pasar entera una cadena a mayúsculas. Me encuentro con este problema, tengo: Últimas Es decir Últimas pero con caracteres ...
  #1 (permalink)  
Antiguo 02/02/2013, 13:05
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Pasar a mayúsculas

Hola, estoy buscando cómo hacer para pasar entera una cadena a mayúsculas.

Me encuentro con este problema, tengo:

Últimas

Es decir Últimas pero con caracteres HTML

Lo que quiero conseguir es ÚLTIMAS.

Alguna pista?
  #2 (permalink)  
Antiguo 02/02/2013, 13:54
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Pasar a mayúsculas

strtoupper("prueba asi")
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 02/02/2013, 13:56
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Pasar a mayúsculas

No es suficiente para los acentos.
  #4 (permalink)  
Antiguo 02/02/2013, 13:59
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Pasar a mayúsculas

y asi? :D

echo strtr(strtoupper($cadena),"àèìòùáéíóúçñäëïöü","ÀÈÌ ÒÙÁÉÍÓÚÇÑÄËÏÖÜ");

Edito: Asi tambien creo que vale:

setlocale(LC_CTYPE, 'es');
echo strtoupper('áéíóú');
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #5 (permalink)  
Antiguo 02/02/2013, 14:09
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Pasar a mayúsculas

Usa html_entity_decode para convertir esas entidades a letras y luego strtoupper, algo así:

Código PHP:
Ver original
  1. echo strtoupper(html_entity_decode('Últimas', ENT_NOQUOTES, 'ISO-8859-1')); //ÚLTIMAS

Consulta los charset:

http://www.php.net/manual/es/functio...ity-decode.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 02/02/2013, 14:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Pasar a mayúsculas

Lo que tendrías que hacer es usar html_entity_decode, después strtoupper como te indica CoriaWeb, y sí quieres volver a transformar usa htmlentities.

Saludos.
  #7 (permalink)  
Antiguo 03/02/2013, 11:56
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Pasar a mayúsculas

Vale, para ese caso funciona pero NO para:

versión

no acaba de "transformarme" en VERSIÓN (sino en VERSIóN).
  #8 (permalink)  
Antiguo 03/02/2013, 18:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Pasar a mayúsculas

Pues a mi me funciona bien:
Código PHP:
Ver original
  1. <?php
  2. setlocale(LC_ALL, 'es_MX');
  3.  
  4. $string = 'versi&oacute;n';

Aunque si no te sirve con el setlocale, me encontré esta función que te puede servir:
Código PHP:
Ver original
  1. function ucfirstHTMLentity($matches){
  2.         return "&".ucfirst(strtolower($matches[1])).";";
  3.     }
  4.     function fullUpper($str){
  5.         $subject = strtoupper(htmlentities($str, null, 'UTF-8'));
  6.         $pattern = '/&([A-Z]+);/';
  7.         return preg_replace_callback($pattern, "ucfirstHTMLentity", $subject);
  8.     }

Saludos.
  #9 (permalink)  
Antiguo 04/02/2013, 15:32
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Pasar a mayúsculas

Lo del setlocale sí q va pero me convence más hacerlo con una función, y no acaba de funcionar, me sale ésto:

VERSI&Amp;OACUTE;N M&Amp;OACUTE;VIL
  #10 (permalink)  
Antiguo 04/02/2013, 16:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Pasar a mayúsculas

Pues el problema es que tienes doblemente codificada tu cadena, eso es incorrecto, tú indicaste que tu cadena es versi&oacute;n no versi&amp;oacute;n.

En ese caso vas a tener que aplicar dos veces html_entity_decode para quitar el primer &amp; a &, y luego el segundo para transformar el &oacute; en ó.

Saludos.

Etiquetas: html
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 07:20.