Acá va: si encuentra una cadena muy larga, la trunca:
los comentarios estan un poco "chapuzas" pero si revisais el codigo podeis cambiar algunas cosillas.
Código :
<?php
$prueba = 'holaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa como estan todos';
if( ereg('[^ ]{50} ',$prueba) ): //si encuentra una cadena igual o de mas de 50 caracteres...
$prueba = str_replace ("'", '&cs;',$prueba ); //si hay una comilla simple en el comentario se cambia por un caracter temporal para no ocasionar error
$tmp = preg_replace('@([^ ]{50,})@',"'.substr('$1',0,40).'... ",$prueba); //se "trunca" la cadena a 40 caracteres usando substr y se colocan 3 punticos al final de la cadena larga truncada, para que se vea mas guay
eval("\$prueba = '$tmp';"); //usamos eval para que "corra" el substr
$prueba = str_replace ('&cs;',"'",$prueba ); //reemplazamos el codigo a comilla simple de nuevo
endif;
echo $prueba; //se imprime ^^
?>