function break_long_words($source_text,$lng)
{
$regExp=\'/(\\S{\'.$lng.\',})/ei\';
$res_text=preg_replace($regExp,"wordwrap(\'\\\\1\',$lng,\'\\n\',1)",$source_text);
return $res_text;
}
Взято где-то из архивов fido7.ru.php пару лет назад (возможно сейчас у кого-то есть более красивое решение)