Os cuento qué me pasa, porque me parece algo curiosísimo, y no sé a qué se debe...
Resulta que tengo un código PHP escrito en PHP 4.3.9, y hemos migrado a PHP 5. Hasta aquí todo bien, ya que la gran mayoría de cosas funciona sin problemas, pero como digo, es "la gran mayoría", hay cosas que no y no sé porqué.
Pongo el código primero y luego cuento dónde está el problema...
El código es este:
Código PHP:
function formateaNombreAps($textoApsNombre, $mayus=0){
if (strrpos($textoApsNombre, ",")){
$sepNombreAps = explode(", ", $textoApsNombre);
$formato = html_entity_decode($sepNombreAps[1])." ".html_entity_decode($sepNombreAps[0]);
if ($mayus!=0) return $formato;
else return ucwords(mb_strtolower($formato));
}else return 0;
}
MARTINEZ PEREZ, ALFREDO
Y lo que quiero que haga la función es "formatear" la cadena para ponerla de la siguiente forma:
ALFREDO PEREZ MARTINEZ
Y si el parámetro "$mayus" es "0", entonces se quiere que la salida sea esta:
Alfredo Perez Martinez
Como digo, antes funcionaba sin problemas (PHP 4.3.9) y en PHP 5 el problema está en esta línea:
Código PHP:
else return ucwords(mb_strtolower($formato, "UTF-8"));
(Nota: uso "mb_strtolower" para que no me diera problemas las Ñ, al pasarlas a minúsculas. Antes de eso, usaba simplemente "strtolower")
He probado a poner ese código sin los dos métodos PHP:
Código PHP:
else return $formato;
¿Alguien sabe qué puede estar pasando? Repito que antes me funcionaba ok...
¡Saludos y muchas gracias por adelantado!