html tags aus String entfernen
html tags aus String entfernen
am 19.10.2006 11:55:01 von Thomas Grabietz
Hallo NG,
hat jemand eine Idee zu folgendem Problem?
Nach einer Volltextsuche bekomme ich aus einer Datenbank die ersten
soundsoviel Zeichen eines Textes zurück. Dieser Text kann html-Tags
enthalten, der möglicherweise auch noch ungültigen Code enthält (da ja nur
soundwoviele Zeichen zurück gegeben werden)
Alle html-Tags müssen jetzt also entfernt werden.
Fällt jemandem was schlaueres ein als:
- zu überprüfen, ob die letzten Zeichen des Textes ein nicht geschlossener
Tag sind.
- alles was in <> steht, mit einer Regexpression aus dem Text heraus zu
nehmen.
Danke für Anregungen Tom
Re: html tags aus String entfernen
am 19.10.2006 12:07:45 von Ulf Kadner
Thomas Grabietz schrieb:
> Nach einer Volltextsuche bekomme ich aus einer Datenbank die ersten
> soundsoviel Zeichen eines Textes zurück. Dieser Text kann html-Tags
> enthalten, der möglicherweise auch noch ungültigen Code enthält (da ja nur
> soundwoviele Zeichen zurück gegeben werden)
>
> Alle html-Tags müssen jetzt also entfernt werden.
So ist es. Es besteht ja auch kein Grund in einem Suchergebnis eine
Formatierung einzubauen oder zu übernehmen. Da gehts doch in 1. Linie um
Infos in kurzer Form.
> Fällt jemandem was schlaueres ein als:
>
> - zu überprüfen, ob die letzten Zeichen des Textes ein nicht geschlossener
> Tag sind.
unnötig, ausserdem kann auch folgendes drin stehen "abc
unvollständiger Tag. Da müstest Du erst nen Parser bauen der ermittelt
ob der Tag ein Single-Tag ist oder aus einem öffnenden und
schlieÃenden Tagelelement besteht. .
> - alles was in <> steht, mit einer Regexpression aus dem Text heraus zu
> nehmen.
Nicht nur. Damit deckst Du mein obiges Bsp. nicht ab. Also auch noch
Anfang und Ende des Strings bereinigen.
MfG, Ulf
Re: html tags aus String entfernen
am 19.10.2006 12:08:54 von Jens Riedel
Thomas Grabietz wrote:
> - alles was in <> steht, mit einer Regexpression aus dem Text heraus zu
> nehmen.
strip_tags() kennst du aber, oder?
Jens
--
Der Kluegere gibt nach - Eine traurige Wahrheit:
sie begruendet die Weltherrschaft der Dummen.
- Marie von Ebner-Eschenbach
Re: html tags aus String entfernen
am 19.10.2006 13:39:11 von Thomas Grabietz
Jens Riedel wrote:
> Thomas Grabietz wrote:
>
>> - alles was in <> steht, mit einer Regexpression aus dem Text heraus zu
>> nehmen.
>
> strip_tags() kennst du aber, oder?
100 Punkte, sowas habe ich gesucht, um mir die aufwändige regex zu sparen...
Gruà Tom
Re: html tags aus String entfernen
am 19.10.2006 15:44:58 von so
Thomas Grabietz schrieb:
> 100 Punkte, sowas habe ich gesucht, um mir die aufwändige regex zu sparen...
strip_tags kannte ich zwar auch noch nicht, aber /<.*?>/s ist ja nicht
wirklich aufwändig :)
suat
Re: html tags aus String entfernen
am 19.10.2006 16:00:49 von Ulf Kadner
Thomas Grabietz schrieb:
> Jens Riedel wrote:
>> strip_tags() kennst du aber, oder?
>
> 100 Punkte, sowas habe ich gesucht, um mir die aufwändige regex zu sparen...
Das erfüllt aber nicht alle evtl. auftretenden Anforderungen! Fulltext
macht bei der Auswahl der Treffer keinen unterschied ob der Treffer
mitten in einem Html-Tag beginnt, oder sonstwo. Du solltest das
berücksichtigen was ich Dir in meiner Antwort schrieb!
MfG, Ulf
Re: html tags aus String entfernen
am 19.10.2006 16:07:51 von Harald Trauernicht
Ulf Kadner schrieb:
> Thomas Grabietz schrieb:
>> Fällt jemandem was schlaueres ein als:
>>
>> - zu überprüfen, ob die letzten Zeichen des Textes ein nicht geschlossener
>> Tag sind.
>
> unnötig, ausserdem kann auch folgendes drin stehen "abc
> unvollständiger Tag. Da müstest Du erst nen Parser bauen der ermittelt
> ob der Tag ein Single-Tag ist oder aus einem öffnenden und
> schlieÃenden Tagelelement besteht. .
>
Um das Problem mit den unvollständigen Tags zu umgehen, nimmt man die
folgende Vorgehensweise:
1. Den kompletten Text mit strip_tags() bereinigen
2. Die gewünschte Anzahl Zeichen aus dem Text extrahieren und anzeigen
So ist auch gewährleistet, dass immer dieselbe Anzahl Zeichen gezeigt
werden, und nicht ein z.B. per strip_tags() um 150 Zeichen reduzierter
200 Zeichen-Text.
HTH
Harald
Re: html tags aus String entfernen
am 19.10.2006 16:12:57 von Ulf Kadner
Harald Trauernicht schrieb:
> Um das Problem mit den unvollständigen Tags zu umgehen, nimmt man die
> folgende Vorgehensweise:
>
> 1. Den kompletten Text mit strip_tags() bereinigen
> 2. Die gewünschte Anzahl Zeichen aus dem Text extrahieren und anzeigen
Nein.
2. Anfang und Ende bereinigen und wenns nur mit htmlentities() ist
Dannach kannste damit machen was Du willst.
Re: html tags aus String entfernen
am 19.10.2006 19:17:22 von dafox
Harald Trauernicht schrieb:
> Ulf Kadner schrieb:
>> Thomas Grabietz schrieb:
>>> - zu überprüfen, ob die letzten Zeichen des Textes ein nicht
>>> geschlossener Tag sind.
>> unnötig, ausserdem kann auch folgendes drin stehen "abc
>> unvollständiger Tag. Da müstest Du erst nen Parser bauen der ermittelt
>> ob der Tag ein Single-Tag ist oder aus einem öffnenden und
>> schlieÃenden Tagelelement besteht. .
So ein Parser ist ja nicht wirklich aufwendig. Und die Empty-Tags sind
auch überschaubar.
> Um das Problem mit den unvollständigen Tags zu umgehen, nimmt man die
> folgende Vorgehensweise:
> 1. Den kompletten Text mit strip_tags() bereinigen
Oder du nimmst meine truncate_html()-Funktion aus der Grabbelkiste :).
Re: html tags aus String entfernen
am 19.10.2006 21:50:32 von Claus Reibenstein
Suat Ãzgür schrieb:
> Thomas Grabietz schrieb:
>
>> 100 Punkte, sowas habe ich gesucht, um mir die aufwändige regex zu sparen...
>
> strip_tags kannte ich zwar auch noch nicht, aber /<.*?>/s ist ja nicht
> wirklich aufwändig :)
Das macht aber etwas anderes.
GruÃ. Claus