Обрезаем текст определённой длины на PHP

Многие разработчики ломают голову над скриптом, который будет обрезать текст определённой длины. Подобный текст используется в качестве краткого описания к статьям или постам.

Различного рода CMS предоставляют нам готовые решения для подобного рода задач, но почему бы не посмотреть на то, как сделать это самому.

Данную задачу можно решить средствами JavaScript и CSS, однако мы воспользуемся языком PHP.

Возьмём следующий текст:

$string = "<p><strong>Richard III</strong> (2 October 1452 – 22August 1485) was King of England for two years, from 1483 until his death in 1485 in the Battle of Bosworth Field. He was the last king of the House of York and the last of the Plantagenet dynasty. His defeat at Bosworth Field, the decisive battle of the Wars of the Roses, is sometimes regarded as the end of the Middle Ages in England. He is the subject of the play<cite>Richard III</cite> by <a href=//en.wikipedia.org/wiki/William_Shakespeare>William Shakespeare.</a>"

Первым делом, уберём все html элементы:

$string = strip_tags($string);

Теперь обрежем его на определённое количество символов:

$string = substr($string, 0, 200);

Затем убедимся, что текст не заканчивается восклицательным знаком, запятой, точкой или тире:

$string = rtrim($string, "!,.-");

Напоследок находим последний пробел, устраняем его и ставим троеточие:

$string = substr($string, 0, strrpos($string, ' '));
echo $string."… ";

Результат будет такой:

Richard III (2 October 1452 – 22 August 1485) was King of England for two years, from 1483 until his death in 1485 in the Battle of Bosworth Field. He was the last king of the House of York and the…

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://demosthenes.info/blog/703/Build-Better-Text-Extracts-With-PHP
Перевел: Станислав Протасевич
Урок создан: 19 Июня 2013
Просмотров: 103806
Правила перепечатки


5 последних уроков рубрики "PHP"

  • Фильтрация данных с помощью zend-filter

    Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

  • Контекстное экранирование с помощью zend-escaper

    Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

  • Подключение Zend модулей к Expressive

    Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

  • Совет: отправка информации в Google Analytics через API

    Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

  • Подборка PHP песочниц

    Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

^ Наверх ^