mabu: Text zuschneiden, der HTML-Tags enthält

Hallo!

Ich habe ein Newssystem und würde gerne auf der Übersicht nur den Beginn des Textes anzeigen lassen (zB die ersten 200 Zeichen). Das Problem ist, dass der Text auch HTML-Code enthält.

Ich möchte also die ersten 200 Zeichen an Text anzeigen lassen, auch wenn darin zB HTML-Formatierungen enthalten sind (diese sollten allerdings erhalten bleiben). Mal abgesehen von dem Problem, dass ich nicht weiß, wie ich das Abschneiden an sich anstellen soll, würden dann möglicherweise auch noch HTML-Tags geöffnet bleiben, welche erst noch geschlossen werden müssten (sonst könnte ja das ganze Design der Seite durcheinanderkommen).

Ist das überhaupt so einfach möglich oder gibt es dafür vielleicht schon eine vorgefertigte Klasse?

mfg,
mabu

  1. Moin,

    Ich habe ein Newssystem und würde gerne auf der Übersicht nur den Beginn des Textes anzeigen lassen (zB die ersten 200 Zeichen). Das Problem ist, dass der Text auch HTML-Code enthält.

    Ich möchte also die ersten 200 Zeichen an Text anzeigen lassen, auch wenn darin zB HTML-Formatierungen enthalten sind (diese sollten allerdings erhalten bleiben). Mal abgesehen von dem Problem, dass ich nicht weiß, wie ich das Abschneiden an sich anstellen soll, würden dann möglicherweise auch noch HTML-Tags geöffnet bleiben, welche erst noch geschlossen werden müssten (sonst könnte ja das ganze Design der Seite durcheinanderkommen).

    Ist das überhaupt so einfach möglich oder gibt es dafür vielleicht schon eine vorgefertigte Klasse?

    nicht, dass ich wüsste. Insofern vermute ich, dass Du selbst eine Funktion dazu schreiben müsstest. Das Abschneiden nach 200 Zeichen kann man so machen:

    $ursprungstext = "Eben der Text mit Tags.";
    $ohneHTML = striptags($ursprungstext);
    $nur200 = substr($ohneHTML, 0, 200);

    Dann würde ich den $ursprungstext bis zu der Stelle kürzen, an der die letzten Zeichen aus $nur200 stehen, den HTML-haltigen String auf ungeschlossene Tags analysieren und insofern welche vorhanden sind, diese eben schließen.

    Unfeine aber einfache(re) Methode wäre, einfach mal per se n Batzen schließender Tags anzuhängen, aber das ist natürlich eine nicht mehr valide Stümperei.

  2. echo $begrüßung;

    Ich habe ein Newssystem und würde gerne auf der Übersicht nur den Beginn des Textes anzeigen lassen (zB die ersten 200 Zeichen). Das Problem ist, dass der Text auch HTML-Code enthält.

    Spricht etwas dagegen in der Übersicht auf HTML-Code zu verzichten, sprich: nur reinen Text anzuzeigen? Das würde die Sache stark vereinfachen. Dann kannst du die drei Codezeilen von Mike verwenden und musst dich nicht mit den HTML-Tags rumschlagen.

    echo "$verabschiedung $name";