Обрезать текст по количеству слов и символов в PHP

  Александр Маврин   Комментариев нет

Обрезать строку по символам и словам

В PHP очень часто приходится работать со строками, даже в небольших проектах, таких, как CRUD приложение. И одной из наиболее часто встречающихся задач является обрезка текста по количеству символов или целым словам К примеру для публикации анонсов статей, которые выводятся из БД MySQL. К счастью гибкость языка позволяет нам делать многие вещи, в том числе и эти. И давайте на примерах рассмотрим как обрезать строку на PHP и в конце поставить многоточие. А для того, чтобы вам было понятно о чем идет речь, я подготовил демо-страницу.

Демо

Обрезать текст по количеству символов

Скажу сразу, что в примере используются кириллические символы в кодировке UTF-8. Вот сам код:

1
2
3
4
5
6
$val = $_POST['val'];
$text = $_POST['text'];
$text = strip_tags($text);
$text = @mb_substr($text, 0, $val);
$text = trim($text, "!,.- ");
echo $text."...";

Обрезка текста по символам PHP
Теперь по порядку.

  1. Количество символов получаемых из массива POST
  2. Получаемый текст, который нужно обрезать
  3. Удаление всех HTML тегов
  4. Функция обрезки текста (что обрезать, с какого символа начинать, на какую длину обрезать)
  5. Убрать указанные знаки препинания и пробел в конце
  6. Вывод текста с многоточием или ссылкой на полный текст

Вариаций исполнения на эту тему может быть много, ваша фантазия здесь ничем не ограничена.

Обрезать строку PHP по словам

1
2
3
4
$array = explode(" ", $text_word);
$array = array_slice($array, 0, $val_word);
$newtext = implode(" ", $array);
echo $newtext."...";
  1. Делаем из строки массив, где разделителем будет пробел
  2. Выбираем количество слов из переменной val_word, которые нужно вывести. 0 — с какого слова начинать
  3. Делаем массив опять строкой
  4. Выводим то, что получилось

Как видите, ничего сложного. Все зависит от контекста вашей задачи, а реализацию уже подогнать под нее. На тестовой странице наглядно демонстрируется работа этих функций. Подгрузка контента осуществляется без перезагрузки страницы с помощи AJAX, поэтому может показаться, что все работает на Javascript. Если возникнут вопросы — смело задавайте их в комментариях.

Добавить страницу в закладки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *