Ergebnis 1 bis 11 von 11

Thema: Text kürzen, jedoch nicht auch HTML Codes entfernen

  1. #1

    Text kürzen, jedoch nicht auch HTML Codes entfernen

    Hi.

    Ich kürze momentan Texte auf 250 Zeichen durch folgenden Befehl:
    PHP-Code:
    substr($row['content'], 0512
    Soweit, so gut.

    Wenn ich jetzt den "BB Code Convet0r (u. eigene Codes)" gebastelt habe, dann könnte folgendes passieren, substr() schneidet teile des, in html umgewandelten Code ab:

    ...<a href="http://forum.rpg-kingd<a href="?go2=blog&blog="28">...</a>

    Wie man iM code sieht: das <a href="?go2=blog&blog="28">...</a> wird angehängt, um den Eintrag komplett sich anzuschauen.

    Nur blöd, in der Voransicht, habe ich einen Fehlerhaften Link vor dem "...".
    Mit welchem Trick oder intelligentem System kann ich das verhindern, das mindestens das da stehen würde:

    ...<a href="http://forum.rpg-kingddom.de"></a><a href="?go2=blog&blog="28">...</a>?

    Dennis

  2. #2
    Ich würds irgendwie mit Regexps machen...
    Code:
    /.{,125}(<a (.*?)>.{,125}<\/a>)?.{,125}/
    Oder so. Ich bin jetzt zu faul und es ist zu spät das alles genau zu erklärn
    Das Ergebnis müsste der gekürzte Text sein, aber, falls ein Link drin ist, mit dem kompletten Link.

    Ich geb aber keine Gewähr.

  3. #3
    :bahnhof:

    Wie, du kürzt Texte?
    Ich habe noch nie davon, wovon du grad redest, gehört^^
    Erbitte einweihung

  4. #4
    Zitat Zitat von Dingsi
    Ich würds irgendwie mit Regexps machen...
    Code:
    /.{,125}(<a (.*?)>.{,125}<\/a>)?.{,125}/
    Oder so. Ich bin jetzt zu faul und es ist zu spät das alles genau zu erklärn
    Das Ergebnis müsste der gekürzte Text sein, aber, falls ein Link drin ist, mit dem kompletten Link.

    Ich geb aber keine Gewähr.
    Jau, werd ich mir mal später anschauen. Wie ich diesen Perlartigen (?) Code doch hasse. :/
    Naja, mal schauen ob es klappt.

    Zitat Zitat von Freierfall
    :bahnhof:

    Wie, du kürzt Texte?
    Ich habe noch nie davon, wovon du grad redest, gehört^^
    Erbitte einweihung
    Ist das jetzt Ironie? *kratz am bart

    Dennis

  5. #5
    ne.
    ich wüsst nur gerne, worums überhaupt geht.

  6. #6
    Zitat Zitat von Freierfall
    ne.
    ich wüsst nur gerne, worums überhaupt geht.
    Du kennst doch Blogs oder? (http://blog.de müsste einer sein)
    Die kürzen (standartmässig, dachte ich jedenfalls bis eben O.o) Ihre Texte auf eine gewisse Anzahl von Buchstaben, z.B. auf 500 Buchstaben, danach wird der Text vom Webserver gelöscht.
    Dann kann man auf einen Link klicken um den ganzen Text sich anzuschauen.

    Dennis

  7. #7
    jetzt versteh ich^^
    einen text mit php kürzen, und der schneidet dir html tags ab^^
    aber da weiß ich auch keine Lösung außer deiner, die die das porbem verursacht.

  8. #8
    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.

  9. #9
    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.
    Klingt leichter als es ist.

    Ich hab Dingsis Coder immernoch nicht ausprobiert.

    Dennis

  10. #10
    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.

  11. #11
    Wenn, dann muss man aber nach /> und </ suchen Und wenn mehr als ein Tag offen ist, hilft das auch nicht...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •