Più che per caratteri, che provocherebbero troncamenti di parole, bisognerebbe troncare al paragrafo.
Potresti provare a fare na roba del genere:
$paragraph_array=explode(".", $this->article->text);
$pretext=$paragraph_array[0];
M.
se count($pretext) < (Numero caratteri stabiliti - tot di scorta)
allora puoi usare anche $paragraph_array[1];
... insomma ...va gestita un po'