hola,
substr es una muy buena solucion, pero a veces no es lo mejor, en mi caso tambien tube una duda parecida un dia, necesitaba que mi cadena mostrara una cantidad de palabras espesificas, no caracteres como hace
substr, por que no me gustaba como se veia el texto con la ultima palabra cortada, bueno, no mas muela, en esta post que pongo hay un script que te puede servir para eso, claro, si no quieres que tu ultima palabra se corte por la mitad:
http://www.forosdelweb.com/f18/que-funcion-muestra-cantidad-especifica-palabras-502312/
saludos y suerte y ojala y te sirva mi umilde aporte............