#php #html #css #текст
На многих сайтах видно, что невместившейся текст обрезается, ставится троеточие и ссылка "подробнее". В CSS нашел свойство text-overflow, но оно обрезает сразу на первой строке. Как добиться того, чтобы текст обрезался на 3 или 4 строке допустим?
Ответы
Ответ 1
с помощью PHP можно делать вот так к примеру: $text = "Допустим здесь ваш текст из 1000 символов"; $text = mb_substr($text,0,140, 'UTF-8'); //140 это кол. знаков echo $text.'...'; Это самый простой пример { $text1 = "Допустим здесь ваш текст из 1000 символов"; $text = mb_substr($text1,0,140, 'UTF-8'); //140 это кол. знаков $str_count = substr_count($text," "); // возвращает количество пробелов $text = explode(" ", $text1); //количество слов for($i=0;$i<$str_count; $i++){ echo $text[$i].' '; } echo "..."; }Ответ 2
В PHP сколько функций для работы со строками, что вариантов можно скомбинировать множество. Например, мой такой: $raw = 'Строка на много символов...'; $string = substr($raw, 0, 140); // обрезаем первые 140 символов $end = strlen(strrchr($string, ' ')); // длина обрезка $string = substr($string, 0, -$end) . '...'; // убираем обрезок добавляем троеточие echo $string;Ответ 3
Используйте этот код для PHP: mb_strimwidth("Hello World", 0, 10, "..."); Функция выведет Hello W...Ответ 4
Это можно легко сделать средствами css. Если правильно ими воспользоваться) ДержитеОтвет 5
Это делается скриптом php, где указывается количество видимых символов, а дальше троеточиеОтвет 6
text-overflow обрезает на первой строке т.к. у вас не указана высота блока в котором находится текст, попробуйте что-то вроде:много много текстаНу а правильнее и проще конечно сделать на php с помощью substrОтвет 7
Вы просто разрушили все велосипеды... Функция mb_strimwidth режет "по живому". А функция выше на этой странице, режет по словам. Обернул в функцию, пример: $text1 = "Ассоциация участников рынка лакокрасочных материалов в поддержку качества краски– «Подходы к формированию рынка качественных и безопасных лакокрасочных материалов строительного назначения»"; function textTrim($str, $len) { $text = mb_substr($str,0, $len, 'UTF-8'); //140 это кол. знаков $str_count = substr_count($text," "); // возвращает количество пробелов $text = explode(" ", $str); //количество слов $out = ''; for($i=0;$i<$str_count; $i++){ $out .= $text[$i].' '; } $out .= "..."; return $out; } echo textTrim($text1, 70)."\n"; //Выведет: Ассоциация участников рынка лакокрасочных материалов в поддержку ... echo mb_strimwidth( $text1, 0, 70, "..."); //Выведет: Ассоциация участников рынка лакокрасочных материалов в поддержку ка...
Комментариев нет:
Отправить комментарий