/*
Cut the string without breaking any words, UTF-8 aware
* param string $str The text string to split
* param integer $start The start position, defaults to 0
* param integer $words The number of words to extract, defaults to 15
*/
function wordCutString($str, $start = 0, $words = 15 ) {
$arr = preg_split("/[\s]+/", $str, $words+1);
$arr = array_slice($arr, $start, $words);
return join(' ', $arr);
}
Использование:
$input = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna liqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.';
echo wordCutString($input, 0, 10);
Это выведет первые 10 слов.
Функция preg_split
используется для разбиения строки на подстроки. Границы, вдоль которых должна разбиваться строка, задаются с помощью шаблона регулярных выражений.
preg_split
функция принимает 4 параметра, но только первые 3 относятся к нам прямо сейчас.
Первый параметр - Шаблон
Первый параметр - это шаблон регулярных выражений, по которому нужно разбить строку. В нашем случае мы хотим разбить строку по границам слова. Поэтому мы используем предопределенный класс символов \s
, который соответствует символам пробела, таким как пробел, табуляция, возврат каретки и перевод строки.
Второй параметр - строка ввода
Второй параметр - это длинная текстовая строка, которую мы хотим разделить.
Третий параметр - предел
Третий параметр указывает количество подстрок, которые должны быть возвращены. Если вы установите ограничение n
, preg_split вернет массив из n элементов. Первые элементы n-1
будут содержать подстроки. Последний элемент (n th)
будет содержать остаток строки.