| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
skiv 21.02.2011 15:09 / 21.02.2011 17:50
Есть ли у кого-нибудь готовая функция которая из большого текста отрезает кусок заданной длины, но не рвет слова посередине, а нормально их обрабатывает, учитывает знаки препинания, ставит троеточие и пр.?@textCut[txt;len][around]
$result[$txt]
# вычитаем троеточие
$len($len - 3)
# если строка длиннее чем надо
^if($len > 5 && $len < ^txt.length[]){
# режем
$result[^txt.left($len)]
# символы до и после разреза
$around[^txt.mid($len - 1;2)]
# если оба символа не пробелы, уменьшаем строку до первого пробела
^if(^around.match[^^[^^ ]{2}^$]){
$result[^result.match[\s[^^\s]+^$][]{}]
}
# убираем пробелы и некоторые знаки препинания в конце строки
$result[^result.match[[\s\n,:^;–-]+^$][]{}]
# ставим троеточие
$result[^result.match[\.*^$][]{...}]
}