Das Problem hatte vielleicht schon manch einer. Hier eine Lösung:

function getShortTextByWord($string, $len)
{
$string = substr($string, 0, $len);
$string_end = strrpos($string, ' ');
if($string_end) $string = substr($string, 0, $string_end);
return $string;
}