Наверное глупо вам покажется разрезать текст, но это меня в прошлом выручило при написании систему Личных Сообщений. Система ЛС у меня была похожа на ЛС социальной сети ВКонтакте. Если вы заметили, там ЛС обрезается если текст огромный. Давайте рассмотрим как же это действет.. В нашем случае не очень хорошо обрезать текст по буквам, то есть так:

Код:
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>Читать далее &raquo;</b>';
?>

Как видите, все очень легко, всего лишь разбиваете приходящий текст, и в цикле считает нужное количество слов, в нашем случае это 10 и обрезаете текст, остановив цикл когда $i дойдет до нужного нам числа. Ну вот и все, надеюсь вам понравиться мой урок, спасибо, удачи!

Теги: PHP уроки