So erstellen Sie Vorschautext

9

Ich habe den folgenden Code für die Ausgabe von Text aus meiner Datenbank:

%Vor%

Was ich tun möchte, ist eine "Vorschau" hinzuzufügen, wo nur die ersten 250 Zeichen angezeigt werden, und dann kann der Benutzer auf einen Link klicken, um die ganze Sache zu lesen. Etwas wie das:

%Vor%

Es gibt offensichtlich einige Probleme hier.

  1. Inhalte innerhalb von bb-Code-Tags, z. B. URLs, werden als Teil der Vorschaulänge gezählt. Daher wird [url=http://www..example.com]link[/url] als 39 Zeichen interpretiert, wenn sie als 4 interpretiert werden soll.
  2. Wenn der Text mit nicht übereinstimmenden bb-Code-Tags abgeschnitten wird, werden sie nicht analysiert.

Wie kann ich das erreichen?

    
mister martin 28.07.2013, 21:43
quelle

2 Antworten

1

Beim Testen mit bbCode Playground habe ich festgestellt, dass bbCode keine Escapes zulässt und eckigen Text als zurückgibt solange es nicht speziell mit den Codes und Formaten übereinstimmte. Sie laufen Gefahr, Text in Klammern fälschlicherweise durch einen generischen Ansatz zu ersetzen.

Der folgende Code ersetzt den bbCode und sucht nach bestimmten Tags. Es prüft nicht auf Attribute, nur wenn ein Tag Attribute erlaubt oder nicht. Auch wird es immer noch fälschlicherweise Dinge zuordnen, die bbCode nicht liefert, wie [b]asdasd[b]asdsda[/b]dasd[/b] in bbCode würde asdasd[b]asdsdadasd[/b] zurückgeben, und dies wird asdasdasdsdadasd zurückgeben. Wenn Sie etwas genaueres brauchen, brauchen Sie einen Parser.

%Vor%

Ich bemerkte in der anderen Antwort, dass sie Ausrufezeichen suchen. Ich weiß nicht die Bedeutung von denen in bbCode. Sie können es am Anfang '/\[[\/!]?... hinzufügen, wenn es signfikant ist.

Die folgende Geige zeigt, wie es mit einem Beispieltext funktioniert.

phpFiddle .

    
Daniel Gimenez 28.07.2013, 23:03
quelle
0

Ich würde den BB-Code strippen, da es sich um eine Vorschau handelt.

%Vor%     
cmorrissey 28.07.2013 22:41
quelle

Tags und Links