Делаем обрезание

rooot

Новичок
Делаем обрезание

Как вывести первые строчки из сообщения, чтобы они не привышали 2-х строк и влезали в границы таблицы , многоточие. Пример

Этот текст очень большой страницы на две, так что флудить не буду.

|Первые две строики из большого текста|
|которые не выходят за границы ... |
 

rooot

Новичок
О первых, которые находятся в огромном собщении.
http://capitalcity.combats.ru/forum.pl
вот пример,
ветки имею комен, а коментом служит первые 2 строки из сообщения
как это реализованно?
 

white phoenix

Новичок
svetasmirnova
Ну не знаю.. как говорится у кого что болит :)
rooot
Навскидку:
PHP:
$string = 'Your text';
$sub = join(' ',array_slice(explode("\n",preg_replace('~.{50}\s~','$0'."\n",$string)),0,2));
if (strlen($sub) < strlen($string)) {$sub .= '...';}
echo $sub;
UPD: где 50 там подставь ширину в символах.
 

svetasmirnova

маленький монстрик
Скачался плугинчик к jEdit для реготестов наконец. Типа такого:
PHP:
preg_replace('/(.{0,max_len})\s./', '$1', $string);
 

master_x

Pitavale XXI wieku
svetasmirnova
вот хорошая вроде вещь, этот jEdit, а заставить себя пользоваться ею... никак.
а название у темы конечно же хоть куда. прямо как реклама.
 

white phoenix

Новичок
svetasmirnova
А чем не устраивает вызов preg_match(_all) для теста? Мне его хватает даже при работе со сложными выражениями, хотя тут сразу заработало.
> preg_replace('/(.{0,max_len})\s./', '$1', $string);
И что это даст?
 

svetasmirnova

маленький монстрик
white phoenix
Тебе *все* 33 возможных решения этой задачи привести?
 

rooot

Новичок
>>white phoenix
Ну не знаю.. как говорится у кого что болит
Ну девушке то куда? :)
Как говорится мы hусские никогда дhуг дhуга не обманываем :)
 

white phoenix

Новичок
svetasmirnova
Нет, достаточно одиного рабочего варианта, который делает то что в задаче :)
rooot
> Ну девушке то куда?
В том и соль... "Хорошее название темы" было сказано без опаски :)
 

Гравицапа

elbirret elcno
PHP:
$lcNewString = '';
$laArr = explode("\n", wordwrap($lcString,80));
for ($i = 0, $liCount = count($laArr); $i < $liCount, $i < 2; $i++) {
    $lcNewString .= ltrim($laArr[$i]).' ';
}
$lcNewString .= '...';
без регулярок :)
 

svetasmirnova

маленький монстрик
white phoenix
Не придирайся. Была передана идея, а звёздочки - это уже реализация. Кстати, ненужная в случае "preg_match(_all) для теста": я же не знаю конечной задачи.
PHP:
preg_replace('/(.{0,max_len})(\s|$).*/', '$1', $string);
 

_RVK_

Новичок
Господа, вы о чем? Я конечно понимаю что здесь все знатные телепаты но свой вопрос я задал неслучайно. Автор сказал не о количестве символов а о 2-х строках. Вот я и не пойму. Речь о кусочках текста в конце которых символ перевода каретки, или о чем? Уж не сочтите за занудство :)
 

white phoenix

Новичок
svetasmirnova
> Не придирайся. Была передана идея, а звёздочки - это уже реализация
Не придераюсь, дело не в зведочках, а в двух строках.
> я же не знаю конечной задачи.
Разве?

-~{}~ 14.01.06 01:00:

_RVK_
"влезали в границы таблицы"
 

_RVK_

Новичок
white phoenix
_RVK_
"влезали в границы таблицы"
Угу, и что? Зажми контрол и покрути колесико мыши. Ты удивишься что то что влазило в 2 строки, уже не влазиет, или наоборот помещается в одну строку. А если у тебя Firefox то ты удивишься еще сильнее, когда текст у тебя будет занимать вообще лишь 10% ширины. Я уж молчу о разрешении экрана.
 
Сверху