PHP сокращение строк substr c сохранением полных слов
Иногда бывает необходимость сделать вывод строки, в которой содержится один или несколько абзацев, но при этом нужно вывести определенное количество символов, а потом дописать ссылку "подробнее" и дать ссылку на материал. Делается это на PHP с помощью функции substr, однако, зачастую хочется выводить целые слова, а не просто "обрезок". Решение данной задачи в этой статье.
Итак, у нас есть строка. В ней имеется большое количество символов, короче, текст. Задача вывести определённое количество символов из этого текста, при этом слова не должны обрезаться по длине. Решается эта задача следующим образом: предлагается создать функцию, которая принимает строку, а на выходе выдаёт обрезанную по последнему влезающему слову строку.
function cut_paragraph($string) { $your_desired_width = 100; $string = substr($string, 0, $your_desired_width+1);
if (strlen($string) > $your_desired_width) { $string = wordwrap($string, $your_desired_width); $i = strpos($string, "\n"); if ($i) { $string = substr($string, 0, $i); } } return $string; }
Собственно, данная функция выполняет поставленную задачу - выдаёт по указанному в переменной $your_desired_width число знаков от начала абзаца, при этом если вывод идёт именно целых слов, которые разделены пробелами.