Tengo este texto:
$texto="ÁBACO ÑERO CUADRÓ AÑORANZAS";
Puedo jugar con str_replace, strtolower, strtoupper, ucwords, ucfirst, pero deseo pasar el texto a tipo titulo, la mayoria de las funciones y ejemplos que encuentro me dan como resultado:
ábaco ñero cuadrÓ AÑoranzas. - mírese que las acentuadas no cambiaron
Ahora tenemos así
$texto="ábaco ñero cUADrÓ aÑoranzas";
El resultado
ábaco ñero CuadrÓ AÑoranzas. - lo mismo
Y la solucion bien sencilla y eficiente (creo) utilizando una funcion que a partir de PHP versión 4.3.0 podemos disponer mb_convert_case lo cual la funcion para convertir a tipo título quedaría así
Código PHP:
function primera_mayuscula($cadena){
$cadena=mb_convert_case($cadena, MB_CASE_TITLE, "utf8");
return($cadena);
}
echo primera_mayuscula("ÁBACO ÑERO CUADRÓ AÑORANZAS");
echo primera_mayuscula("ábaco ñero cUADrÓ aÑoranzas");
//resultado para cualquiera de las dos: Ábaco Ñero Cuadró Añoranzas