hallo bor, hier ne kurze erläuterung, nachdem ich den quelltext ja nicht kommentiert habe:
explode durchläuft den ganzen string mit dem hintergrund, daß der user teilweise ja schon umbrüche gesetzt haben könnte zwecks formatierung, diese sollen natürlich erhalten bleiben und es sol nicht passieren, daß das script eventuell kurz nach oder vor einem bereits gesetzten umbruch noch einmal umbricht und ein einzelenes wort auf einer zeile stehen bleibt.
mit explode wird also der gesamte text in die einzelnen vorformatierten absätze aufgebrochen und diese werden dann einzeln durchlaufen um sie wieder umzubrechen. ich bin dan allerdings so vorgegangen, daß nicht bei der festen breite umgebrochen wird, sondern das script sucht von $limit aus das nächstgelegene leerzeichen abwechselnd vor oder nach maxleng. es wird also nicht der gesamte string durchlaufen. man könnte natürlich auch umstellen, daß es nur von $limit aus zurück sucht, so daß maxlength eingehalten wird.
was dein einwand mit ewig langen zeilen angeht, so stimmt das schon, aber es solte ja nur ein proof of concept werden, kein script für den produktiveinsatz. man könnte aber für diesen zweck noch eine weitere bedingung einbauen die überprüft, ob kein leerzeichen vorhanden ist und dann zwangsumbrechen.
was substr angeht so funktioniert das meines wissen so:
es wird ein weiterer pointer auf einen pointer to char an position 1 gesetzt und ab diesem punkt der bereich mit länge 2 in einen neuen speicherbereich kopiert. es sollte also nicht die gesamte kette durchlaufen werden, sondern nur ab dem offset kopiert werden, alles andere würde rein technisch keinen sinn machen, und da php hauptsächlich in c++ erstellt wurde, denke ich auch mal, daß es dahingehend funktioniert.
@schnur...
das script wurde von mir auf 2 servern getestet und es läuft ohne probleme, und mein warning level steht zu entwicklungszwecken immer auf E_ALL. außerdem, was soll der spruch, daß man keinem einen gefallen tut nur codefetzen hier einzustellen? erstens ist es kein codefetzen, sondern eine komplett funktionsfähige fuktion, und zweitens sind wir hier ien hilfeforum und kein dienstleister. wenn du mich bezahlst, dann bekommst du komplett dokumentierte, fertige anwendungen. so lange ich hier umsonst sachen abliefere mußt du eben nehmen, was du bekommst, oder es lassen.