Перенос длинной строки. Не могу найти ошибку

SB
На сайте с 06.11.2011
Offline
11
1385

Нужно перенести длинный текст на новую строку. А если он не помещается на двух строчках, то перенести и на третью строчку.

На каждой строке планировал не более 20 символов текста. Если больше, то перенос.

Вот код который я использую:

Ссылка на текстовый файл

Почему то при этом происходит странная вещь. На первой строчке остается первое слово, а все остальное переносится на следующую строчку. Подскажите, как правильнее было бы написать этот кусок кода? Заранее спасибо.

Предлагаю выгодное приватное решение для конверта Вашего трафика. Принимается трафик с доров и белых проектов. Обращайтесь в личку.
Max_Q
На сайте с 14.11.2011
Offline
9
#1

Как вариант:

echo wordwrap( $string, 20, "<br />" );
SB
На сайте с 06.11.2011
Offline
11
#2

Как бы еще это дело адаптировать под код, пример которого я привел в первом посте. Из кода я понял, что текст собирается посимвольно.

S
На сайте с 11.06.2010
Offline
57
#3

$x = 0;


for($e=0;$e<strlen($val['text']);$e++) {

if (++$x==20) {
$br = 1;
}
if ($br == 1 && $val['text'][$e] == ' ') {
$text .= '<br>';
$br = 0;
$x = 0;
}
$text .= $val['text'][$e];
}

Но по Вашему условию м.б. более 20 символов ( см. знак пробела во втором if)

SB
На сайте с 06.11.2011
Offline
11
#4

Отлично. Почти то что нужно. Что не получилось, так это сделать чтобы максимум 33 символа в строке было. Постоянно больше чем надо получается. Но при этом чтобы перенос был по пробелу как и раньше.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий