Si necesitás cortar palabras sin truncarlas, por ejemplo para mostrar titulares en espacios reducidos, estas funciones te permitirán hacerlo de una manera sencilla:
function cortar_palabras($string, $limite){
$str = "";
$total_caracteres = 0;
$total = 0;
$aString = explode(" ", $string);
$cantidad = count($aString);
foreach($aString as $cadena){
$total += contar_caracteres($cadena);
}
$c = 0;
while($total_caracteres < $limite && $c < $cantidad){
$total_caracteres += contar_caracteres($aString[$c]);
$c++;
}
for($i = 0; $i < $c; $i++){
$str .= $aString[$i] . " ";
}
$str .= ($total > $limite) ? "..." : "";
return $str;
}
function contar_caracteres($string){
return strlen($string);
}
Sólo tendremos que hacer un llamado a la función pasando como parámetros la cadena a cortar y la cantidad de caracteres que tomaremos como límite.
Saludos!