Heim  >  Artikel  >  Backend-Entwicklung  >  So entfernen Sie HTML-Tags mithilfe regulärer Ausdrücke in PHP

So entfernen Sie HTML-Tags mithilfe regulärer Ausdrücke in PHP

王林
王林Original
2023-06-24 08:22:391275Durchsuche

Beim Schreiben von Webanwendungen müssen wir häufig HTML-Tags aus Benutzereingaben entfernen und diese in ein Nur-Text-Format konvertieren. Dies verhindert Cross-Site-Scripting-Angriffe (XSS) und verbessert die Lesbarkeit von Textinhalten. In PHP können Sie reguläre Ausdrücke verwenden, um dieses Ziel zu erreichen.

Eine gängige Methode ist die Verwendung der Funktion „strip_tags()“ von PHP. Diese Funktion entfernt alle HTML-Tags aus der Zeichenfolge. Es gibt jedoch Fälle, in denen Sie möglicherweise einige Tags beibehalten möchten, z. B. Link- und Bild-Tags. In diesem Fall sind reguläre Ausdrücke hilfreich.

Sehen wir uns zunächst an, wie man mit regulären Ausdrücken HTML-Tags entfernt und in einfachen Text umwandelt. Das Folgende ist ein einfaches PHP-Codebeispiel:

$string = "<p>这是带有<strong> HTML标记 </strong>的文本。</p>";
$text = preg_replace("/<[^>]+>/", '', $string);
echo $text; // 输出: 这是带有 HTML标记 的文本。

Dieser reguläre Ausdruck bedeutet: Suchen Sie den gesamten Text, der mit „db20a0373f500b5c789d398c17b6f290“ endet, und ersetzen Sie ihn durch leer (d. h. löschen).

Sehen wir uns nun an, wie man nur bestimmte HTML-Tags behält. Angenommen, wir möchten die Tags 16e3673c8f9326235a5217cdf963cf19 Das Folgende ist ein Beispielcode:

$string = "<p>这是带有<strong> HTML标记 </strong>的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。</p>";
$text = preg_replace("/<(?!a|img)[^>]*>/", '', $string);
echo $text; // 输出: 这是带有 HTML标记 的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。

Die Bedeutung dieses regulären Ausdrucks ist: Finden Sie den gesamten Text in der Zeichenfolge, der mit „db20a0373f500b5c789d398c17b6f290“ endet < ; img >

Wir können (?!) einen negativen Lookahead nutzen, um dieses Ziel zu erreichen. Dieser Ausdruck weist die Engine für reguläre Ausdrücke an: „Suchen Sie nach einem Tag, das mit „db20a0373f500b5c789d398c17b6f290“ endet, aber kein 16e3673c8f9326235a5217cdf963cf19- oder a482408f4345e9b47492d085db8fef6a-Tag ist.

Bitte beachten Sie: Wir verwenden auch „ “, um die Grenzen der Beschriftung anzupassen. Denn wenn wir es weglassen, zum Beispiel durch die Verwendung von „c3699ea9849e29cab7bf51b0842cf1d6“ und „29fe7e7ca60d0018adea1fe47c5e063f“.

Mit der oben genannten Methode können Sie HTML-Tags entfernen und sie mithilfe regulärer Ausdrücke in PHP in einfachen Text konvertieren. Bitte beachten Sie, dass dies nur ein Schritt zur Verhinderung von XSS-Angriffen ist. Um die Sicherheit von Webanwendungen zu erhöhen, ist es häufig erforderlich, andere Technologien wie Eingabevalidierung, Ausgabefilterung und Sitzungsverwaltung zu verwenden.

Das obige ist der detaillierte Inhalt vonSo entfernen Sie HTML-Tags mithilfe regulärer Ausdrücke in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn