Yo tengo esta función:
Código PHP:
// devuelve una cadena cortando el número de palabras
function corta_string($cadena, $numPalabras)
{
$resultado = $cadena ;
if( str_word_count($cadena) > $numPalabras )
{
$cadena = array_splice(explode(" ", $cadena), 0, $numPalabras);
$resultado = implode(" ", $cadena);
}
return $resultado;
}