A função mb_strimwidth() obtém uma string truncada com largura específica. Ela possui 4 parâmetros: string, start, width, trim_marker onde:
Se trim_marker estiver definido, trim_marker substitui os últimos caracteres para corresponder ao width
$texto = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
echo mb_strimwidth($texto, 0, 100, "...");
Observe que no exemplo foi definido "..." como trim_marker, com isso temos 97 caracteres da string mais os 3 caracteres das reticências, totalizando os 100 caracteres do parâmetro width.