Text kürzen, aber Ausnahmen beachten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Text kürzen, aber Ausnahmen beachten

    Hallo,


    ich habe folgende Situation:

    Artikel werden aus einer Datenbank eines Forums gelesen und angezeigt. Dabei sollen diese Artikel vor der Anzeige auf x Zeichen gekürzt werden.


    Das Problem:

    Werden in diesen Artikeln jetzt BBCodes benutzt, kann es ja sein, dass diese Codes dann beim Kürzen durchtrennt werden, was einen unschönen Nebeneffekt mit sich bringt. Dazu mal ein Beispiel:

    Text vor der Formatierung(aus der Datenbank):

    [b:9426bdcdd9]Hallo sers[/b:9426bdcdd9]


    Text nach der Formatierung:

    [b:9426bd...


    Meine bisherigen Ansätze:

    Eigentlich nur substr().


    Das erhoffte Ergebnis:

    Die neue Funktion sollte den Text kürzen, dabei aber Worte, die mit BBCode formatiert wurden, aber die maximal festgelegte Textlänge überschreiten, trotzdem anzeigen und den Text erst nach diesen Worten abschneiden.



    ich hoffe mir kann jemand helfen

  • #2
    Re: Text kürzen, aber Ausnahmen beachten

    Für gewöhnlich wird sowas für "Previews" genutzt ... willst du da wirklich mit BB-Codes erschlagen werden?
    Theo. macht man es meist so, dass alle Codes entfernt werden und danach abgeschnitten und einfach nur pur-Text angezeigt wird ... ansonsten wird es wohl etwas komplizierter (um nicht zu sagen, SEHR kompliziert)

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Wäre es theoretisch nicht auch möglich, den Text erst nach der nächsten Zeichenfolge ala [/***] zu kürzen? Das würde ja reichen.

      Kommentar


      • #4
        So einfach ist das nicht, denke ich. Ich glaube du stellst dir gerade den Optimalfall vor:

        text text text [b:hash]text[/b:hash].

        Wenn es per Zufall der Fall ist, dass dein Text so gekürzt wird, dass ein kompletter bbcode-tag am Ende des Strings sitzt, dann gut. Was ist aber, wenn dein Text gekürzt wie folgt aussieht:

        text text text [b:hash]text[/b:h?

        Und schon ist es um einiges komplizierter, den schließenden Tag zu identifizieren. Ich würde dir also an deiner Stelle nochmal ghostgamblers Post nahe legen.
        Nieder mit der Camel Case-Konvention

        Kommentar

        Lädt...
        X