Zitat Zitat von Manni
Das könnte so funktionieren:
Entferne erst alle HTML-Tags aus dem Text und speichere ihre Position.
Kürze den Text auf 500 Zeichen und füg die Tags wieder ein.
Wenn ein Tag geöffnet wurde, aber aufgrund des Abschneidens nicht mehr geschlossen wurde, schließe ihn am Ende des gekürzten Textes.
IMHO zu umständlich es würde genügen bei der 500ten Position nach dem letzen vorkommen von ">" und "<" zu suchen. Sollte nach dem letzen ">" noch ein "<" erscheinen weißt du, dass du einen Tag abgeschnitten hast. also das erste ">" rechts der 500sten Position suchen und den String erst nach ab der Position abschneiden.

Sollte etwas performanter arbeiten als die Version von Manni. Das Problem mit den offenen Tags ist damit jedoch nicht behoben.