Наверное глупо вам покажется разрезать текст, но это меня в прошлом выручило при написании систему Личных Сообщений. Система ЛС у меня была похожа на ЛС социальной сети ВКонтакте. Если вы заметили, там ЛС обрезается если текст огромный. Давайте рассмотрим как же это действет.. В нашем случае не очень хорошо обрезать текст по буквам, то есть так:
substr($text, 0, 100);
В таком случае текст будет обрезан после 100 символов. Но это не очень красиво, Текст может обрываться и посередины слова, а это не очень гуд как говориться..
И по этому представляю вам свою новую задумку.. (Комментарии в коде приведены, описывать каждую не стану)
<?php $text = 'Это переменная содержит очень много слов, и следовательно имеет очень длинную цитату, которая содержит очень много букв и слов. Наша задача: написать цикл, которая будет отсчитать 10 слов и вывести его укароченно. И прикрепить ссылку "Читать далее.."'; // Сам текст echo '<b>Исходный текст:</b><br>'.$text; $limit = 10; // Количество слов $i = 0; // Начинаем с одного $per = ''; // Переменная, куда будем сложить слова, пройденные проверку $Message = explode(' ', $text); // Разбиваем текст на массив foreach($Message as $Mes) { $per .=$Mes.' '; // Собираем пройденные слова $i = ++$i; // Увеличиваем на 1 if($i == $limit) // Если собрался нужная количество слов, то обрываем цикл break; } echo '<br><br><b>Конечный результат:</b><br>'.$per.' <b>Читать далее »</b>'; ?>
Как видите, все очень легко, всего лишь разбиваете приходящий текст, и в цикле считает нужное количество слов, в нашем случае это 10 и обрезаете текст, остановив цикл когда $i дойдет до нужного нам числа. Ну вот и все, надеюсь вам понравиться мой урок, спасибо, удачи!
Теги: PHP уроки