Aver... creo que sí tiene que ver, porque esa función inserta un salto de línea.. de esa forma tu tabla tendrá siempre un acho máximo definido...
Y lo de hacerlo "a mano"... se me ocurre así:
Código PHP:
$texto="palabras de 40 caracteresmildoscientoscuarentayochocaracteresynoseharotolacadenaestadeaca no se si existan aca...
De todas maneras buscamos pues algunas que te
parecesi buscamos una que otra";
echo "<b>Texto sin modificar:</b><br />\n";
echo $texto."<br />";
$a=explode(' ', $texto);
foreach($a as $indice=>$palabra){
if(strlen($palabra)>40){
$a[$indice]=substr($palabra, 0, 40);
}
}
$texto=implode(' ', $a);
echo "<b>texto modificado:</b><br />\n";
echo $texto."<br />";
Lo que no sé es de qué te sirven las palabras cortadas así como quedarían. A menos que TODA TU CADENA (y no las palabras) deba tener 40 caracteres como máximo. En ese caso sería más sencill. Bastaría con sólo poner
Código PHP:
$texto=substr($texto,0,40);
Hay que fijarse que los saltos de línea se cuentan como caracteres. Además, las etiquetas HTML se cuentan como caracteres (ej: <br> tiene 4 caracteres), pero no se visualizan con el "echo".
Saludos