HTML-Tags validieren
Chris
- php
0 Christoph Schnauß0 Hopsel0 Cybaer
Hallo zusammen
Ich möchte auf einer News-Seite den Anfang von neuen Berichten anzeigen lassen (z.B. die ersten 300 Zeichen). Die Berichte können mit HTML formatiert werden und unter anderem auch Tabellen beinhalten. Wie kann ich nun vermeiden, dass auf der News-Seite unter Umständen Code ausgegeben wird, der einen öffnenden HTML-Tag enthält, aufgrund der Beschränkung der Zeichenlänge (z.B. 300 Zeichen) aber nicht mehr geschlossen wird? Merci für jeden Hinweis.
Gruss
Chris
hallo,
Die Berichte können mit HTML formatiert werden
Das können sie nicht, da HTML eine Auszeichnungssprache ist. Zum Formatieren benutzt du bitte CSS.
Wie kann ich nun vermeiden, dass auf der News-Seite unter Umständen Code ausgegeben wird, der einen öffnenden HTML-Tag enthält, aufgrund der Beschränkung der Zeichenlänge (z.B. 300 Zeichen) aber nicht mehr geschlossen wird?
Du fragst ab, ob der letzte Tag mit </ beginnt. Ist das so, wird die Meldung ausgegeben, ist das nicht der Fall, wird ein entsprechender Warnhinweis ausgegeben. Du kannst auch die Zeichen zählen. Sind es mehr als deine theoretisch erlaubten 300, gibts eine Abbruchmeldung und man gelangt zurück zur Eingabenseite für Berichte.
Grüße aus Berlin
Christoph S.
Hi Christoph!
Du fragst ab, ob der letzte Tag mit </ beginnt. Ist das so, wird die Meldung ausgegeben,
Dann kann es aber auch noch offene Tags geben.
...ist das nicht der Fall, wird ein entsprechender Warnhinweis ausgegeben.
Aber das wäre ja unschön.
Eine Fehlermeldung wie "Die ersten 300 Zeichen dieses Textes können leider nicht angezeigt werden, weil es halt nicht geht." stört doch den Leser. :)
Du kannst auch die Zeichen zählen. Sind es mehr als deine theoretisch erlaubten 300, gibts eine Abbruchmeldung und man gelangt zurück zur Eingabenseite für Berichte.
Entweder hast du den OP falsch verstanden oder ich.
Ich las mich überraschen. ;-)
MfG H☼psel
Hi,
Du fragst ab, ob der letzte Tag mit </ beginnt. Ist das so, wird die Meldung ausgegeben, ist das nicht der Fall, wird ein entsprechender Warnhinweis ausgegeben.
<b><i>[so viele Zeichen, daß das schließende i-tag das letzte in den 300 Zeichen ist]</i>
Obwohl das letzte tag mit </ beginnt, ist die von Chris genannte Bedingung nicht erfüllt, da das b-Element nicht geschlossen wird.
Dein Ansatz würde nur funktionieren, wenn Elemente nicht verschachtelt werden dürften.
Entweder wie von Hopsel vorgeschlagen alle tags entfernen oder aber den String durchgehen und dabei merken, welche tags geöffnet, aber nicht wieder geschlossen werden und diese dann (in umgekehrter Reihenfolge zu den öffnenden tags) wieder schließen (dabei dann auch beachten, daß sich Position 300 ggf. mitten in einem tag befinden kann)
cu,
Andreas
Hi Chris!
Ich würde den Anfang der Berichte unformatiert anzeigen lassen.
Also erst alle HTML-Tags entfernen und davon die 300 ersten Zeichen nehmen.
MfG H☼psel
Hi,
Die Berichte können mit HTML formatiert werden und unter anderem auch Tabellen beinhalten.
Bei Verwendung von XHTML kannst Du "einfach" die XML-Funktionen von PHP nutzen.
Gruß, Cybaer