Diese Nachricht wurde vor 13 jahr 5 monat 2 tag veröffentlicht. Unter Umständen ist der Inhalt nicht mehr auf dem aktuellsten Stand.
Die Verwaltung von Datenbankinhalten kann unter Umständen recht aufwändig werden. Gerade wenn man, wie in meinem aktuellen Fall, aus ca. 1,8 Mio Datensätze (Text) HTML Tags entfernen will. Als ersten kam mir die Überlegung hierfür ein Script in PERL oder PHP zu schreiben. Da ich allerdings nicht alle Applikationen anpassen will und kann, musste die Funktion vom MySQL übernommen werden.
Dank Google habe ich hier eine vorgefertigte Funktion für MySQL gefunden.
SET GLOBAL log_bin_trust_function_creators=1; DROP FUNCTION IF EXISTS fnStripTags; DELIMITER | CREATE FUNCTION fnStripTags( Dirty varchar(4000) ) RETURNS varchar(4000) DETERMINISTIC BEGIN DECLARE iStart, iEnd, iLength int; WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO BEGIN SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty )); SET iLength = ( iEnd - iStart) + 1; IF iLength > 0 THEN BEGIN SET Dirty = Insert( Dirty, iStart, iLength, ' '); END; END IF; END; END WHILE; RETURN Dirty; END; | DELIMITER ;
Im folgenden Beispiel wird der übergebene Text ohne HTML ausgegeben.
mysql> SELECT fnStripTags(„Testtext mit <b>fettem HTML Text</b>.“);