Para esa función de limitar el tamaño de las cadenas, se puede usar una función como la siguiente, le pasas la cadena completa y el límite que quieres para cortar:
Código PHP:
<?
$cadena_larga = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";
echo limpia_cadenas($cadena_larga,20);
//esta función checa si hay muchos caracteres sin espacios e inserta espacios.
function limpia_cadenas($cadena,$max){
$patron = '([^ ]{'.$max.'})';
$reemplazo = "\\1 "; //lo mismo más un espacio
$cadena_limpia = ereg_replace($patron,$reemplazo,$cadena);
return $cadena_limpia;
}
?>
Aunque no tendría sentido cortar cadenas que tienen, aunque cumplan con el máximo que tú quieres, ya tengan saltos de línea. Es decir, la función esa, para estar completa, debe identificar cadenas corridas en donde no haya espacios ni saltos de línea. Por ahora así está.
La función anterior imprime:
01234567890123456789 01234567890123456789 01234567890123456789 01234567890123456789 01234567890123456789 01234567890123456789