PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTML-Tags entfernen


The Loner
09.04.2004, 17:03
hi @ all.

ich brauche eine funktion, mit der ich bequem alle HTML-tags aus einer zeichenkette entfernen kann. :)

ich hab mir dazu zwar selbst schon gedanken gemacht, doch meine version dieser funktion arbeitete ziemlich unzuverlässig, da ich nur von einem "<" bis zu einem ">" alles gelöscht habe.

wenn dazwischen doch mal ein "<" oder ">" vorkam, dann war das resultat ein einziges chaos.

also hier meine frage: hat jemand schon so eine funktion für c/c++ und evtl. auch PHP??? oder gibt es so etwas irgendwo zum download?

The Loner

Atomic
09.04.2004, 18:53
PHP:

echo htmlspecialchars("< Ich bin ja so ein tolle<<<r Code.>>. duda du>>da dey hey!!>");

The Loner
09.04.2004, 18:56
ähm, naja gibt's den quellcode der funktion auch irgendwo? ich brauch das ganze nämlich in c/c++.

ich dachte nur, da c++ und php sich _relativ_ ähnlich sind, dass sich auch die php-coder trauen eine idee zu äußern... ;)

The Loner

Atomic
09.04.2004, 19:08
Die Lösung hab ich ich weiß nur nicht wie du das genau willst:
Einfach alle Zeichen übersetzen zu Sonderzeichen?
Oder gleich das ganze Dokument nach seiner gültigkeit validieren?

The Loner
09.04.2004, 19:11
also hier ein bsp:

html-code:

<title>Mein Titel</title>
<td>test</td>


die funktion soll dann das hier liefern:


Mein Titel
test


die tags sollen einfach gelöscht werden, doch bei einer schlecht geschriebenen seite ist das echt eine qual.... :(

The Loner

Atomic
09.04.2004, 20:09
Und wenn da das steht:<title>Mein >> Titel</title>
<td>test</td>

Soll auch das herauskommen:
Mein >> Titel
test


Oder soll ein Fehler zurückgegeben werden?
Oder soll das garnicht berücksichtigt werden?
Oder soll der Filter einfach alle Html Zeichen in Html konforme Zeichen umwandeln?

The Loner
09.04.2004, 20:49
genau so soll es sein! :)
die extra >> zeichen sollten ignoriert werden, müssen aber nicht unbedingt in > umgewandelt werden.

The Loner

Atomic
09.04.2004, 21:29
Hmm wenn ich Zeit hab schreib ich das schnell..

So funktionierts (teorie):
Der Parser liest den String Zeichen für Zeichen
Wenn er "<" liest beginnt er die nachfolgenden zeichen als Tag-strings zu sammeln
Wenn hinter dem < kein Buchstabe/Zahl/oder "/" folgt wandelt er das Zeichen um in ein Sonderzeichen oder löscht es ganz.
Wenn "<image <" liest löscht/validiert er "<image " zu "image " und gibt den String zurück (hängt ihn an den Hauptstring an) und beginnt einen neuen tag-string
Wenn er ">" auserhalb eines tags steht valieidert er dieses zeichen (löschen oder in sonderzeichen umwandeln)

Hier eine Liste der Sonderzeichen und ihre Maskierung in Html:

http://selfhtml.teamone.de/html/allgemein/zeichen.htm

The Loner
10.04.2004, 07:27
du musst nicht extra die funktion für mich schreiben, könntest du aber bitte die theorie noch mal etwas ausführlicher erläutern? so richtig gerafft hab ich den sinn vom zeichenweisen einlesen nicht. :(

The Loner