[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Каким образом ограничить текст.
Rashanea
У меня вопрос, каким образом ограничить текст.Тоесть у меня ячейка, и вней 100 букв, мне надо ограничить что-бы показывало 15 букв, потом 3-чие.Яркий пример тому - форумы, порталы, при добавлений новости, что-бы небыло длинного названия, оно обрезается.

За название темы извеняюсь, случайность. (Комментарий от sergeiss - заголовок исправил, оставил только основную смысловую часть smile.gif)



Спустя 4 минуты, 9 секунд (8.07.2009 - 12:33) twin написал(а):
Ограничить можно в базе, установов максимальную длину. Или в php функцией substr()

Спустя 3 минуты, 26 секунд (8.07.2009 - 12:36) twin написал(а):
Можно еще модератора попросить. smile.gif

Спустя 5 минут, 54 секунды (8.07.2009 - 12:42) Rashanea написал(а):
Идея в чём, в переменной должно быть всё название, так как оно выводится когда "новость открывается" так сказать.
Вообщем вот
PHP
$temp['name'] =$row['name'.$thissite];
, нужно ограничить, если это реально сделать substr() то можно примером пожалуйста, я новенький в пхп.

Спустя 4 минуты, 9 секунд (8.07.2009 - 12:46) Rashanea написал(а):
Попробовал
PHP
$temp['name'] =substr("$row['name'.$thissite]"08);

Выдало
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/erephand/public_html/brands.php on line 199

Спустя 14 минут, 4 секунды (8.07.2009 - 13:00) twin написал(а):
Когда с подсветкой, понятнее? Зачем там кавычки?

Спустя 2 минуты, 11 секунд (8.07.2009 - 13:03) Rashanea написал(а):
Цитата (twin @ 8.07.2009 - 10:00)
Когда с подсветкой, понятнее? Зачем там кавычки?

Точно, спасибо, работает. user posted image

Спустя 3 минуты, 7 секунд (8.07.2009 - 13:06) Rashanea написал(а):
Блин, надо ограничить всё-же в друх строках. лимит тот-же, но где-то 1, где-то 2 строки.

Спустя 5 минут, 3 секунды (8.07.2009 - 13:11) Rashanea написал(а):
Ошибку понял, ограничиваю всех до 36 букв, у некоторых название меньше 36, и там .. не нужно.Нужно что-бы точки дополнялись только туда где больше 36 букв.Сам не справлюсь.

Спустя 3 минуты, 27 секунд (8.07.2009 - 13:14) twin написал(а):
Ну подсчитай количество символов в исходном тексте. Если больше - лепи свои точки.
Поражает другое... сайт англоязычный, а кодировка 1251.

Спустя 6 минут, 15 секунд (8.07.2009 - 13:21) Rashanea написал(а):
Попробовал
PHP
If (strlen($row['name'.$thissite])=>36)
       
$temp['name'] =substr($row['name'.$thissite], 036).'..';
       else
       
$temp['name'] =$row['name'.$thissite];

выдает Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/erephand/public_html/brands.php on line 199

Спустя 5 минут, 22 секунды (8.07.2009 - 13:26) twin написал(а):
>=

Спустя 2 минуты, 26 секунд (8.07.2009 - 13:28) Rashanea написал(а):
Цитата (twin @ 8.07.2009 - 10:26)
>=

Не надо ругатся!! =( Я всегда на мелочах попадаюсь...Огромное спасибо.Дуамаю этот форум поможет мне стать выще в этой сфере.

Спустя 1 час, 17 минут, 39 секунд (8.07.2009 - 14:46) twin написал(а):
Кто ругался? biggrin.gif Это чтоб луче запомнилось.

Спустя 43 минуты, 16 секунд (8.07.2009 - 15:29) PandoraBox2007 написал(а):
PHP
function str_short ($text, $max_length, $space = ' ')
{
    if ($max_length && strlen($text) > $max_length)
    {
        $text = substr($text, 0, $max_length);

        if ($last_space_pos = $max_length - intval(strpos(strrev($text), $space)))
        {
            if ($last_space_pos > round($max_length * 3/4))
            {
                $last_space_pos--;
                $text = substr($text, 0, $last_space_pos);
            }
        }
        $text .= '...';
        $text = preg_replace('!&#?(\w+)?;?(\w{1,5})?\.\.\.$!', '...', $text);
    }

    return $text;
}


PHP
echo str_short("Длинный текст ыыыыыыыыыыыы ы ыыыыыыы ", (int) 15); // длина 15минус пробел  $space = ' ' ....

Спустя 19 часов, 23 минуты, 55 секунд (9.07.2009 - 10:53) Rashanea написал(а):
Цитата (PandoraBox2007 @ 8.07.2009 - 12:29)
PHP
function str_short ($text, $max_length, $space = ' ')
{
    if ($max_length && strlen($text) > $max_length)
    {
        $text = substr($text, 0, $max_length);

        if ($last_space_pos = $max_length - intval(strpos(strrev($text), $space)))
        {
            if ($last_space_pos > round($max_length * 3/4))
            {
                $last_space_pos--;
                $text = substr($text, 0, $last_space_pos);
            }
        }
        $text .= '...';
        $text = preg_replace('!&#?(\w+)?;?(\w{1,5})?\.\.\.$!', '...', $text);
    }

    return $text;
}


PHP
echo str_short("Длинный текст ыыыыыыыыыыыы ы ыыыыыыы ", (int) 15); // длина 15минус пробел  $space = ' ' ....

PHP
If (strlen($row['name'.$thissite])>=36)
       
$temp['name'] =substr($row['name'.$thissite], 036).'..';
       else
       
$temp['name'] =$row['name'.$thissite];

Так легче мне кажется... Да и работает нормально.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.