Вот мой код, что я делаю, так это извлекаю текст из базы данных, отображаю в таблице, и где данные превышают, скажем, 450 символов, я помещаю это в конец
....[подробнее]
Теперь код работает нормально, но есть одно исключение: информация в базе данных содержит html, например абзацы и маркированные списки. Это создает проблему, вся идея ограничения заключается в том, чтобы он не растягивал строку дальше, чем я хочу, разрыв строки для маркированного списка или абзаца, кажется, считается как 0 или 1 символ, но это занимает пространство для большого количества символов, так как я могу манипулировать этим кодом, чтобы учитывались разрывы строк.
Мои идеи состоят в том, чтобы подсчитать пробелы между ними примерно так:
$white_space = substr_count($text, ' ');
Что возвращает общее количество пробелов
Я также пробовал это
$white_space_str = substr_count($newstr, ' ');
Но это возвращает 0, поэтому я делаю что-то не так. Но в любом случае я немного застрял на этом этапе и надеюсь, что кто-то может помочь новичку, если код будет упрощен, а не обрезан и аккуратен, это может помочь мне лучше понять его :)
Но я не уверен, как поместить это в рабочий код.
function trim_description($str, $maxlen) {
if ( strlen($str) <= $maxlen ) return $str;
$newstr = substr($str, 0, $maxlen);
if ( substr($newstr,-1,1) != ' ' ) $newstr = substr($newstr, 0, strrpos($newstr, " "));
return $newstr;
}
....[view more]
в другой div рядом с ним? Таким образом, вам не нужно будет обрезать ни текст, ни html :) Просто идея, хотя :) - person Andrius Naruševičius   schedule 06.08.2012