Recortar un texto o “string”

<?php
function cut_string($string, $charlimit)
{
if(substr($string,$charlimit-1,1) != ' ')
{
$string = substr($string,'0',$charlimit);
$array = explode(' ',$string);
array_pop($array);
$new_string = implode(' ',$array);

return $new_string.' ...';
}
else
{
return substr($string,'0',$charlimit-1).' ...';
}
}

//Cadena con el texto de ejemplo
$cadena="La Escuela Imperial de Ingenieros ha medrado, al igual que los Colegios de la Magia y el ejército, el cual ha batallado alcanzando victorias y más victorias. El Emperador se pone al mando del ejército siempre que le es posible. De esta forma, ha escrito una historia llena de victorias y conquistas.";

//Llamada y salida de la función recortando el texto a 150 carácteres
echo cut_string($cadena, 150);
?>