¿Cómo obtener los primeros x caracteres de una cadena, sin cortar la última palabra?

Tengo la siguiente cadena en una variable.

Stack Overflow is as frictionless and painless to use as we could make it.

Quiero recuperar los primeros 28 caracteres de la línea anterior, así que normalmente si usosustrato entonces me daráStack Overflow is as frictio esta salida pero quiero salida como:

Stack Overflow is as...

¿Hay alguna función pre-hecha en PHP para hacerlo, o por favor proporcione el código para esto en PHP?

Editado:

Quiero un total de 28 caracteres de la cadena sin romper una palabra, si me devolverá menos de 28 caracteres sin romper una palabra, está bien.