Dios qué código tan largo para una tarea tan sencilla
Como veo que te empeñaste en eso, te doy la solución, te sugiero la analices:
Código PHP:
Ver original$texto = "Texto de ejemplo, uso de substr para evitar que corte palabras";
$longitud = 30;
for($i = $longitud; $i > 0; $i--) {
if($texto{$i} == ' ')
break;
}
Saludos!