EDIT: changed single quotes to double quotes around "\n"
Here's a way that avoids splitting the text in the middle of a word:
$maxLength = 35;
if(strlen($text) > $maxLength)
{
echo array_shift(explode("\n", wordwrap($text, $maxLength))).'...';
}
else
{
echo $text;
}