V·o·L·V·o·R·e·T·a·S e·N M·i C·a·B·e·Z·a

Pues eso... las volvoretas de mi cabeza que también quieren voz y voto.
Opiniones, injusticias, pensamientos, informática, historias, cuentos...

martes, marzo 31, 2009

Pasar una cadena a minúsculas en PHP con acentos, tildes, eñes

Función ucfirst de PHP modificada para que pase a minúsculas también las eñes, tildes y cedillas.






/* Pasa una cadena a minúsculas teniendo en cuenta tildes, eñes y cedillas.
* Deja la primera letra de cada palabra en mayúsculas, sea una eñe, tilde o cedilla.
* Elimina los espacios del principio y final.
* $c: la cadena a transformar
*
* By E.S.R.
*/
function ucfirst_especial($c)
{
$cad=trim($c); // eliminamos los espacios del principio y final
$trozos=explode(' ', $cad); // separamos la cadena por los espacios

$cadena='';
$n=count($trozos); // número de palabras
for($i=0;$i<$n;$i++)
{
// pasamos a mayúsculas la primera letra
$aux1=strtoupper(substr($trozos[$i], 0, 1));
$aux1=strtr($aux1, "áéíóúäëïöüàèìòùâêîôûñçãõ", "ÁÉÍÓÚÄËÏÖÜÀÈÌÒÙÂÊÎÔÛÑÇÃÕ");

if(strlen($trozos[$i])>1)
{ // pasamos a minúsculas todo menos la primera letra si tiene más de una letra
$aux2=strtolower(substr($trozos[$i], 1));
$aux2=strtr($aux2, "ÁÉÍÓÚÄËÏÖÜÀÈÌÒÙÂÊÎÔÛÑÇÃÕ", "áéíóúäëïöüàèìòùâêîôûñçãõ");
}
$cadena.=$aux1.$aux2.' ';
}

$cadena=trim($cadena); // eliminamos el espacio final
return($cadena);
}

Etiquetas: ,

0 Comentarios:

Publicar un comentario en la entrada

Enlaces a esta entrada:

Crear un enlace

<< Home