2010-12-31 2 views
1

Ich habe Dutzende von Funktionen gefunden, die ganze HTML-Tags mit der preg_replace() -Funktion entfernen können, aber ich muss nur die HTML-Klammern < und> entfernen (alles in ihnen setzen). Welche Regexp würde dies erreichen?Wie ersetzen Sie < and > (aber was ist zwischen ihnen) mit PHP RegExp?

+0

Brauchen Sie einen regulären Ausdruck? Dies klingt wie eine einfache Zeichenfolge ersetzen, "<" and ">" durch eine leere Zeichenfolge ersetzen "". –

+0

Ja, es kann mit einer einfachen str_replace Funktion gemacht werden (keine Notwendigkeit für regEx) – shankhan

+0

Sind die '<>' Zeichen zufällige Entitäten? – marcog

Antwort

3

Wie wäre es mit htmlspecialchars. Es ersetzt HTML-reservierte Zeichen durch Escape-Sequenzen. Auf diese Weise werden die Zeichen im Browser angezeigt, sind aber überhaupt nicht schädlich.

Dies ist wahrscheinlich, was Sie wollen - zeigen Sie genau den Text, den der Kunde eingegeben hat, aber machen Sie es unschädlich.

PS: Wenn Sie wirklich eine Regex benötigen, um Tag-Klammern zu entfernen, gehen Sie hier: $text = preg_replace('/[<>]/', '', $text).

+0

Das funktioniert perfekt, danke – MarathonStudios

0

Wie wäre es

str_replace(array("<", ">", "&lt;", "&gt;"), "", $text); 

..?

+0

Ich versuchte mit str_replace. Ich hatte gehofft, dass es eine Regexp geben würde, die den Trick machen könnte. – MarathonStudios

+0

@MarathonStudios Wie wäre es mit dem Ersetzen von HTML-Strings? (bearbeitete Antwort) –

+1

@MarathonStudios Warum bevorzugen Sie eine Regexp über eine einfache str_replace? Letzteres ist wesentlich effizienter. –

Verwandte Themen