Нашёл функцию для вставки перевода строки для слова которое будет больше 50-ти символов в utf-8. Так вот, функция работает, но бывает что в БД добавляется текст и перед текстом перевод строки, пока не могу разобраться почему так происходит... function unicode_wordwrap($str, $len=50, $break="\n", $cut=false){ if(empty($str)) return ""; $pattern=""; if(!$cut) $pattern="/(\S{".$len."})/u"; else $pattern="/(.{".$len."})/u"; return preg_replace($pattern, "\${1}".$break, $str); }
PHP: <?php function utf8_wordwrap($str, $width = 75, $break = "\n") // wordwrap() with utf-8 support { $str = preg_split('#[\s\n\r]+#', $str); $len = 0; foreach ($str as $val) { $val .= ' '; $tmp = mb_strlen($val, 'utf-8'); $len += $tmp; if ($len >= $width) { $return .= $break . $val; $len = $tmp; } else $return .= $val; } return $return; } ?>
Apple Использовал данную вами функцию, вставил переменную после неё $text = utf8_wordwrap($text); текст не переносится.
http://www.greywyvern.com/code/php/htmlwrap.phps - взял отсюда, сработало, правда большая она, но под пивко нормально. Кстати когда вводишь много "ЫЫЫЫЫЫЫЫЫ" - то длинны в 50 символов не хватает, пришлось урезать до 42-х