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.