mb_substr($title, 0, 140,'utf-8').'...';
$topborder=30; // все строки больше этого - режем
$minborder=20; // столько символов гарантированно оставляем
$test='Строка для обрезания. Строка для обрезания. Строка для обрезания. Строка для обрезания.';
echo preg_replace('~^(.{'.$minborder.'}[^\s\.]{0,'.($topborder-$minborder).'}).*$~u','\\1...',$test).PHP_EOL;