Hola
 
Tengo una variable cadena  que se forma concatenando otras palabras que provienen de campos de textos de un formulario. Lo que quiero hacer es contar las palabras  de la variable cadena, pero no he encontrado una funcion que me cuente correctamente.         
           //asigno a variables
            $problema = trim($_POST["problema"]);
            $tipo = trim($_POST["tipo"]);
            $polo1 = trim($_POST["polo1"]);
            $polo2 = trim($_POST["polo2"]);
            $pd1 = trim($_POST["dp1"]);
            $pd2 = trim($_POST["dp2"]);
            $via =trim($_POST["via"]);
            $patologia =trim($_POST["patologia"]);
            $par = trim($_POST["par"]); 
            //contatenar
            $cadena = $problema." ".$tipo." ".$polo1." ".$polo2." ".$pd1." ".$pd2." ".$via." ".$patologia." ".$par;  
 Cita:  Probe con 
$trozos= explode("  ", $cadena);
$numero= count($trozos);
    Me cuenta mas palabras de las que hay
Luego con  
 Cita:  $numero=str_word_count($cadena);
    Cuando la palabra tiene acento , me cuentas 1 palabra de mas o sea;
Ejemplo: corazón son 2 palabras en vez de uno. 
Entonces que funcion usar o como puedo arreglar para que me cuenten la cantidad de palabras correctas. Gracias.