Non sono molto pratica ma...

questo da i primi 20 caratteri poi i 3 punti e alla fine gli ultimi caratteri.
Non ho usato le exp reg, ma substr

codice:
$corto= substr( $testolungo , 0, 20 ).'...'.substr( $testolungo, -10   );
prova questo e modificalo come ti viene meglio.

A meno che non ti rispndano anche altri.
io sono novellina :P