Пример №1
PHP
Функция в примере №1 работает со строкой как с массивом, сравнивая каждый его элемент (символ строки) с ASCII-кодом пробела. В качестве аргументов принимает строку, которую необходимо укоротить и число - длину выводимого текста после обрезки. Возможно не очень оптимальный подход, но со своей задачей по обрезке строки с учетом пробелов, она справляется. Больше про нее сказать нечего: функция несложная, к тому же в ней есть комментарии.
Пример №2
PHP
Подход к решению задачи в примере №2 более оптимален. Основан на PHP-функции strrpos(). Аргументы, такие же, как и первой функции. Правда добавляется еще один, в нем можно передать символы, которые будут добавляться к строке после обрезки. По-умолчанию - это многоточие.
Пример №3
PHP
Функция в примере №3 самая короткая. Аргументы, передаваемы функции, аналогичны аргументам функций из первого и второго примера. Ключевой момент в этой функции находится в третьей строке, в ней вычисляется позиция пробела в строке, начиная с позиции, до которой нужно обрезать строку (второй аргумент). Таким образом, функция удлиняет строку до конца слова, в случае, если символ, позиция которого передана во втором аргументе функции и до которого нужно укоротить строку не пробел.
Надеюсь, что эта заметка будет полезна читателю. Выбирайте подходящий вам вариант, используйте в своих проектах или придумайте свой вариант функции для обрезки текста.