Gracias, no se me habia ocurrido hacerlo de esa forma.
Modifique un poco la funcion para que agregue una cadena al final del recorte (por ejemplo puntos suspensivos)
Código PHP:
function truncate ($str, $length=30, $trailing='...') {
// Cadena a truncar, Longitud a truncar (por defecto 30), Cadena a añadir (por defecto puntos suspensivos)
if (strlen($str)>$length) { //Si el largo de la cadena supera lo que especificamos
$pals = explode (' ',$str); //Crea un array donde cada elemento es una palabra
$str2='';
foreach ($pals as $pal){ //Recorre el array y va agregando cada palabra en $str2 hasta que el largo de $str2 supera el largo maximo
$ant = $str2;
$str2 = $str2.' '.$pal;
if (strlen($str2)>$length){
$str2=$ant . $trailing;
break;
}
}
return $str2;
} else { //Si la cadena está dentro del tamaño especificado la devuelve sin hacer cambios
return $str;
}
}
Espero les sirva..
Saludos!