Cita:  if(ultimo_caracter($aux2)) no hace nada
osea
 
si lo pones en un if tenes q comparar el valor, q prentedes de ese if?
    Por lo menos en C es asi, imagino que en PHP se comporta igual...  
 Código PHP:
    if(ultimo_caracter($aux2)) 
    
  Con esto aunque no compares, lo que hay dentro del if se ejecuta y si devuelve verdadero hace las instrucciones del if y su devuelve falso no hace nada.
Por ejemplo si tu pones   
 Código PHP:
    if($suma=2+2)
echo "$suma"; 
    
  Esto deveria sacar por pantalla 4.  
Esto por ejemplo tambien lo puedes hacer con un while: 
 Código PHP:
    while(1) //<- es verdadero asi que se ejecuta el while
{
    echo "hola";
} //cuidado que esto crea un bucle infinito 
    
  No se si me explicado bien.
De todos modos lo que falla es que no manda el parametro deseado a la funcion.