Du könntest den String mit
explode (Leerzeichen als Trennzeichen) in ein array aus Wörtern aufteilen. Dann unterstuchst du jedes einzelne Element auf seine Länge und fügst entsprechend dann Zeilenumbrüche ein, falls ein Wort zu lang sein sollte.
Danach fügst du das Wörter-Array mit
implode wieder zu einem einzigen String zusammen.