Problem mit RegEx

multimolti

Erfahrenes Mitglied
Hallo!
Ich hab mir eben eine Suchfunktion für meine Website gebaut, aber beim einbauen des Vorschauschnipsels bin ich auf folgendes Problem gestoßen:
Wenn in dem Text, der durchsucht wird, irgendwelche HTML-Befehle drin sind, werden die natürlich mit angezeigt (habe absichtlich HTML-Code in der Datenbank, da kann sowieso nur ich reinposten). Habe jetzt versucht, die einzeln zu ersetzen, mit blöden RegEx, aber das klappt nicht so wirklich....
Habe mir das so gedacht:
$text = eregi_replace("^\<h[1-5]\>([^\[]+)\</h[1-5]\>","\1",$text);
Das müsste doch alle Überschriftsattribute (h1, h2, ...) rauslöschen, und nur den Text zwischen den beiden Tags dalassen, oder? Naja, es funktioniert auf jeden fall nicht. Gibt es eine andere Möglichkeit, einfach alle HTML-Befehle zu löschen?
Ich will sie nicht nur escapen, weil dann sieht man sie ja trotzdem noch, ich will sie einfach ganz weg haben!
 
Ah, danke!

Und hat jemand eine Idee, wie ich den Suchbegriff immer fett anzeigen kann? Wenn ich einfach das hier mache:
$text = eregi_replace($_GET['q'], "<b>".$_GET['q']."</b>", $text);
dann ist es im Gegensatz zu str_replace case-insensitive (gut!), aber es ersetzt das Original eben immer durch den Suchbegriff, und wenn ich jetzt z.B. nach "spiel" suche, dann macht er aus jedem gefundenen "Spiel" ein "spiel". Wie kann ich machen, dass nur die b-Tags vor und nach dem Wort eingefügt werden?
 
Zurück