Foros del Web » Programando para Internet » PHP »

Primera palabra en mayúscula y demás en minúsculas (con acentos)

Estas en el tema de Primera palabra en mayúscula y demás en minúsculas (con acentos) en el foro de PHP en Foros del Web. He preparado un script para pasar la primera letra de cada palabra separada por espacios a mayúsculas y las demás a minúsculas aunque estén acentuadas ...
  #1 (permalink)  
Antiguo 15/03/2010, 13:08
 
Fecha de Ingreso: julio-2009
Mensajes: 64
Antigüedad: 15 años, 5 meses
Puntos: 0
Primera palabra en mayúscula y demás en minúsculas (con acentos)

He preparado un script para pasar la primera letra de cada palabra separada por espacios a mayúsculas y las demás a minúsculas aunque estén acentuadas pero no lo consigo:

$txt=$_POST['texto'];
$txt=trim($txt);
$array=split(' ',$txt);
$cadena='';
$count=count($array);

for($i=0;$i<$count;++$i){
$primercaracter=substr($array[$i],0,1);
$primercaracter=strtoupper($primercaracter);
$cadenarestante=substr($array[$i],1);
$cadenatotal="$primercaracter".strtolower($cadenar estante);
$cadena.=" ".$cadenatotal;
}

echo $cadena;




Después he probado a modificar el script y tampoco me funciona
No me convierte las iniciales acentuadas a mayúsculas, ni las letras que van entre medio de palabras acentuadas a minúsculas acentuadas:



$txt=$_POST['texto'];
$txt=trim($txt);
$array=split(' ',$txt);
$cadena='';
$count=count($array);

for($i=0;$i<$count;++$i){
$primercaracter=substr($array[$i],0,1);
$primercaracter=strtr(strtoupper($primercaracter), "àáâãäåæçèéêëìíîïðñòóôõöøùüú", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ");
$cadenarestante=substr($array[$i],1);
$cadenatotal="$primercaracter".strtr(strtolower($c adenarestante), "àáâãäåæçèéêëìíîïðñòóôõöøùüú", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ");
$cadena.=" ".$cadenatotal;
}

echo $cadena;



Si pongo --> pepito úbÉda índÍgena
se queda así --> Pepito úbÉda índÍgena

Yo lo querría asi Pepito Úbéda Índígena.

Podrían echarme una mano, os lo agradecería un montón.
  #2 (permalink)  
Antiguo 15/03/2010, 13:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Primera palabra en mayúscula y demás en minúsculas (con acentos)

Y la función ucfirst ¿no te sirve?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 15/03/2010, 13:58
 
Fecha de Ingreso: julio-2009
Mensajes: 64
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Primera palabra en mayúscula y demás en minúsculas (con acentos)

No funciona con ucfirst, ya lo probé también y no te convierte las letras con acentos
  #4 (permalink)  
Antiguo 15/03/2010, 14:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Primera palabra en mayúscula y demás en minúsculas (con acentos)

pues yo hice este pequeño experimento...
Código PHP:
header('Content-Type: text/html; charset=UTF-8');

$a 'áé íó ú';
echo 
utf8_encode(ucwords(utf8_decode($a))); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 15/03/2010, 14:07
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 7 meses
Puntos: 50
Respuesta: Primera palabra en mayúscula y demás en minúsculas (con acentos)

este funciona

<?
echo ucwords("ámo");
?>

Etiquetas: acentos, palabra, primera
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 08:28.