Обрезать длинные тексты

761
.
Как сделать так чтобы на главной, длинные тексты из гостевой обрезались заданный ограничение пример до 35 символов?
.
Добавлено: 12.10.2017 / 09:49
Скрин

Добавлено: 12.10.2017 / 09:56
///Ссылка на гостевую////
if ($set['mod_guest'] || $rights >= 7)
    echo '<div class="mainmenu"><b><a href="guestbook/index.php">' . $lng['guestbook'] . '</a></b> (' . counters::guestbook() . ')</div>';


///текст из гостевой////
echo '<div class="list1">';

$guest = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `guest` ORDER BY `time` DESC LIMIT 1"));
echo $guest['text'];

echo '</div>';

сам код
Прикрепленные файлы:
.
ДоХтор
* (+/-)
.
ДоХтор, Спасибо за помощь, работает как надо
Прикрепленные файлы:
.
# Hasanov (12.10.2017 / 12:12)
ДоХтор, Спасибо за помощь, работает как надо
Может быть ещё добавить троеточий в конце обрезанного текста? А то так, как сейчас, не очень понятно... Попробуй вместо этой строки :
echo mb_substr($guest['text'], 0, 35, 'UTF-8');
Прописать вот эту строку :
echo mb_substr($guest['text'], 0, 35, 'UTF-8') . ' ... ';
И посмотри, как это будет в браузере выглядеть.
.
Добавлено: 12.10.2017 / 15:28
ДоХтор, Ну я пробовал так после твоего кода echo '...';
в итоги у меня получился текст и троетощие я подумал что при краткий сообщение в конце триточие будет и поставил в конце смайыл просто ))

Добавлено: 12.10.2017 / 15:39
///Ссылка на гостевую////
if ($set['mod_guest'] || $rights >= 7)
    echo '<b><div class="phdr"><a href="guestbook/index.php">' . $lng['guestbook'] . '</a></b> (' . counters::guestbook() . ')</div>';

///текст из гостевой////
echo '<div class="list1">';

$guest = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `guest` ORDER BY `time` DESC LIMIT 1"));
echo mb_substr($guest['text'], 0, 135, 'UTF-8');
echo '<img src="/guestbook/mail.gif" alt="*" class="icon"/>';
echo '</div>';
.
# Hasanov (12.10.2017 / 15:39)
ДоХтор, Ну я пробовал так после твоего кода echo '...';
в итоги у меня получился текст и троетощие я подумал что при краткий сообщение в конце триточие будет и поставил в конце смайыл просто ))
Можно просто добавить проверку по условию, и тогда точки будут добавляться только при длинных постах в гостевой :
* (+/-)
.
kantry
Hey guys! Finally I'm gonna change status!?
ДоХтор, Можно упростить))
SELECT SUBSTR(text, 1, 35) FROM `guest` ORDER BY `time` DESC LIMIT 1

По концу слова
function clip_word($string, $clip)
{
    if ($clip < strlen($string))
    {
        $string = iconv('UTF-8', 'windows-1251//IGNORE', $string);
        $string = implode(array_slice(explode('<br>', wordwrap($string, $clip, '<br>', false)),
            0, 1));
        $string = iconv('windows-1251', 'UTF-8', $string);
        $string .= '...';
    }
    return $string;
}
.
kantry, да. Так даже лучше.
.
Hasanov
За кончиной процесс!
///Ссылка на гостевую////
$length = 132; //Длина строки, после которой обрезать лишнее//

if ($set['mod_guest'] || $rights >= 7)
    echo '<div class="phdr"><b><a href="guestbook/index.php">' . $lng['guestbook'] . '</a></b> (' . counters::guestbook() . ')</div>';

///текст из гостевой////
echo '<div class="list1">';

$guest = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `guest` ORDER BY `time` DESC LIMIT 1"));
$text_guest = $guest['text'];

if (mb_strlen($text_guest, 'UTF-8') > $length) {
    $text_guest = mb_substr($text_guest, 0, $length, 'UTF-8') . ' <a href="guestbook/index.php"><font color="#FF0000">Дальше...</font>';
}

echo $text_guest . '</div>';
Всего: 17