Обрезаем текст с помощью функции substr PHP
Функция substr ( $string, $start, $length ) , где $string - это переменная с текстом, $start - это символ, с которого начинается отсчёт (за первый символ берётся 0), а $length - это количество символов выделенного текста.
$text = "Example and text";
$first = substr($text,0,6); // Показывает 6 символов начиная с 0-ого, самого первого
echo $first; // выведет 'Example'.
$second = substr($text,8,3); // Показывает 3 символа начиная с 8-ого
echo $second; // выведет 'and'
Если не указать параметр Количество символов (2 цифра), то функция выведет все оставшиеся символы
$text = "Example and text";
$third = substr($text,8); // Покажет ВСЕ символы начиная с 8-ого
echo $third; // выведет 'and text'
Обрезаем Русский текст с помощью функции mb_substr PHP
Функция mb_substr выполняет те же самые задачи, что и substr, но также способна обрабатывать многобайтные кодировки. Поэтому в случае с русским текстом Вам пригодится именно mb_substr. Работает так же
$text = "Пример текста";
$first = mb_substr($text,0,6,'UTF-8'); // Показывает 6 символов начиная с 0-ого, самого первого
// Внимание! Указывайте кодировку исходного текста! В данном случае utf-8
echo $first; //выведет 'Пример'
$second = mb_substr($text,7,6,'UTF-8'); // Показывает 6 символов начиная с 7-ого
echo $second; // выведет 'текста'
Обратите внимание на то, что в случае с кириллицей (русский текст) лучше указывать кодировку в конце функции. В примере использован самый популярный вариант - UTF-8
Обрезаем текст с конца
Если Вы хотите обрезать текст с конца, то для этого укажем отрицательное число для переменной, обозначающей с какого символа начинается вычленение текста
$text = "Sprite and Fanta";
$first = substr($text,-6,5); // Показывает 5 символов начиная с 6-ого с конца
echo $first; //выведет 'Fant'
После обрезки ещё и дописываем текст
После обрезки переменной с текстом дописываем в конец дополнительный текст
$example = "Text text text text";
$example = substr($example,0,9); // Показывает 9 символов начиная с 0-ого, самого первого
$example .= " more...";
echo $example; //выведет 'Text text more...'
Можно наоборот, запись сделать в начале, а потом уже обрезанный текст
$text = "Uncle ";
$example = "George and Michael";
$example = substr($example,0,6); // Показывает 6 символов начиная с 0-ого, самого первого
$text .= $example;
echo $text; //выведет 'Uncle George'
Обрезка текста до первого пробела
$text = 'Hello world!';
echo substr($text, 0, strpos($text, ' ' )); // Выведет 'Hello'
Готовая функция PHP обрезки текста по Словам PHP
function cut($string, $length){
$string = mb_substr($string, 0, $length,'UTF-8'); // обрезаем и работаем со всеми кодировками и указываем исходную кодировку
$position = mb_strrpos($string, ' ', 'UTF-8'); // определение позиции последнего пробела. Именно по нему и разделяем слова
$string = mb_substr($string, 0, $position, 'UTF-8'); // Обрезаем переменную по позиции
return $string;
}
$text = 'Северная война закончилась в 1721 году';
echo cut($text, 17); // выведет 'Северная война', без части слова 'закончилась'
Можно обрезать по словам через массив...
$text = 'Microsoft был основан Биллом Гейтсом ещё в далёком 1975 году.';
$array = explode(" ",$text); // перерабатываем строку в массив
$array = array_slice($array,0,5); // выбираем первые 5 слов-элементов
$newtext = implode(" ",$array); // массив снова перерабатываем в строку
echo $newtext;//Выведет 'Microsoft был основан Биллом Гейтсом'