PHP-strip_tags()

王林
王林Original
2024-08-29 12:52:401154Durchsuche

Die Funktion „strip_tags()“ in PHP ist eine integrierte Funktion, die eine Zeichenfolge aus HTML- und PHP-Tags entfernt/entfernt. Dies gibt eine Zeichenfolge mit einem NULL-Wert in Bytes und HTML zurück, wobei PHP-Tags aus der angegebenen Eingabezeichenfolge entfernt/entfernt werden. Diese Funktion ist grundsätzlich hilfreich, wenn wir die Eingaben des Nutzers auf unserer Seite anzeigen. Wenn wir beispielsweise unser Nachrichtenforum auf der Website erstellen, kann ein Benutzer einen Titel wie folgt posten:

DIESE SITE IST SCHLECHT!

. Wenn die Website alle Titel jedes Beitrags anzeigen würde, würde diese unerwünschte Nachricht auch allen Besuchern der Seite im Überschriftenformat auf der Website angezeigt. Daher würde die Verwendung dieser strip_tag()-Funktionen dazu beitragen, solche Probleme zu beseitigen.

WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax:

string strip_tags( $str, $allowed_tags )

Erforderliche Parameter: Es gibt 2 Parameter, die die Funktion akzeptiert;

  • $str ist der obligatorische Parameter und die Hauptzeichenfolge, die überprüft werden muss.
  • $allowed_tags ist der nicht obligatorische Parameter, der die Tags beschreibt, die zulässig sind und nicht entfernt werden dürfen. Daher bleiben diese Tags erhalten.

Rückgabewert: Diese Funktion „strip_tags“ gibt uns die resultierende Zeichenfolge abgezogen von der Eingabezeichenfolge.

Ausnahmen:

  • Diese Funktion bietet keine Validierung von HTML.
  • Einige der Dinge, die standardmäßig entfernt werden, sind die HTML-Kommentare und PHP-Tags und diese Dinge können nicht geändert werden, da sie fest codiert sind.
  • Die selbstschließenden XHTML-Tags werden in Versionen nach PHP 5.3.4 ignoriert und daher dürfen in $allowed_tags nur nicht selbstschließende Tags verwendet werden.

Beispiele für die PHP-Funktion „strip_tags()“

Lassen Sie uns nun einige Beispiele nehmen, um die Funktionsweise der PHP-Funktion „strip_tags“ zu verstehen.

Beispiel #1

Code:

<?php<br /> // PHP programme to demostrate<br /> // strip_tags function without $allowed_tags parameter<br /> echo strip_tags("Hello <b>Sample Program!</b>");<br> ?>

Ausgabe:

PHP-strip_tags()

Im obigen Beispiel zeigen wir einen einfachen PHP-Code an, um zu veranschaulichen, dass die Funktion „strip_tags“ verwendet werden kann, ohne den zweiten Parameter anzugeben, um anzugeben, welche Zeichen zulässig sind. Dies bedeutet, dass alle Zeichen in der Zeichenfolge zulässig sind und unverändert gedruckt werden.

Beispiel #2

Code:

<?php<br /> $str = '<p>To test a paragraph.</p><!-- Starting comments --> <a href="#fragment">Another paragraph goes here</a>';<br> echo strip_tags($str);<br> echo "n";<br> // Here we allow HTML tag <p><br> echo strip_tags($str, '<p>');<br> // In the version till PHP 7.4.0 the above code can be written as:<br> // echo strip_tags($str, ['p', 'a']);<br> ?>

Ausgabe:

PHP-strip_tags()

Im obigen Beispiel geben wir zunächst den erforderlichen HTML-Code an und weisen ihn der Eingabezeichenfolge $str zu. Anschließend verwenden wir die Strip-Tag-Funktion für diese Zeichenfolge, indem wir nur einen einzelnen Parameter verwenden. Als Nächstes demonstrieren wir die Verwendung des zweiten Parameters $allow_tags, wobei wir nur das Tag

angeben. Das bedeutet, dass nur

Tag sollte erlaubt sein und alle übrigen Tags sollten abgeschnitten werden. Daher können wir in der Ausgabe sehen, dass nur

Tag-Informationen werden angezeigt und Tag-Informationen werden nicht angezeigt. Wir können auch sehen, dass in der Ausgabe die HTML-Kommentare nicht gedruckt werden, was beweist, dass HTML-Kommentare standardmäßig von dieser Funktion gekürzt werden, auch wenn wir in der zweiten Parameterliste nichts angeben.

Warnungen:

  • Diese Funktion kann nicht verwendet werden, um bestimmte Angriffe wie XSS zu verhindern. Es gibt andere geeignete Methoden oder Funktionen wie htmlspecialchars(), die für diesen Zweck verwendet werden können, je nachdem, welche Art von Ausgabe erforderlich ist.
  • Die Funktion strip_tags() schneidet einfach die HTML-Tags ab, ohne sie wirklich zu validieren. Dies kann dazu führen, dass Tags beschädigt werden oder mehr oder weniger Daten als erwartet entfernt werden. Daher sollte bei der Angabe des zweiten Parameters der Funktion Vorsicht geboten sein.
  • Diese Funktion unterstützt auch keine Änderung der Parameter, die wir in der Funktion $allowed_tags angeben, einschließlich der Attribute onmouseover und style, die einige Benutzer möglicherweise verwenden, um einen Text zu veröffentlichen, der anderen Benutzern angezeigt werden soll.
  • Eine weitere Sache, die Sie bei der Verwendung dieser Funktion beachten sollten, ist, dass die Tag-Namen, deren Zeichen größer als eine angegebene Länge (1023 Bytes) im HTML sind, als ungültig behandelt werden, unabhängig davon, was wir in den $allowed_tags als Parameter angeben .

Beispiel #3

Code:

<?php<br /> $str = '<a title="" href="/index.html"><b>Some Text</b></a><br> Just a sample text to showcase a paragraph coming in HTML body';<br> echo strip_tags_content($str);<br> function strip_tags_content($str) {<br> return preg_replace('@<(w+)b.*?>.*?</1>@si', '', $str);<br> }<br> ?>

Ausgabe:

PHP-strip_tags()

Im obigen Beispiel verwenden wir die Funktion „strip_tags“, um das Ankertag zusammen mit seinem Inhalt aus der Eingabezeichenfolge zu entfernen. PHP strip_tags entfernt automatisch sowohl öffnende als auch schließende HTML-Tags, wenn sie entfernt werden.

Beispiel #4

Code:

<?php<br /> $str = '<?= '<?= 1 ?>' ?>2';<br> var_dump(strip_tags($str));<br> ?>

Ausgabe:

PHP-strip_tags()

Dieses Beispiel zeigt, wie Inhalte aus einem verschachtelten PHP-Tag entfernt werden.

Beispiel #5

Code:

<?php // Test.php<br /> $str = '<br>Trial<br/>on<br />NewLine';<br> $d = strip_tags($str, '<br />');<br> var_dump($d); // Displays string(11) "TraialonNewLine" on output<br> ?>

Ausgabe:

PHP-strip_tags()

In diesem Beispiel können wir sehen, dass wir nur Inhalte innerhalb von
zulassen. string und diese Ausgabe hier wird sich ändern, wenn wir verschiedene PHP-Versionen ausführen.

Beispiel #6

Code:

<?php<br> function strip_tags_d($a)<br> {<br> return is_array($a) ?<br> array_map('strip_tags_d', $a) :<br> strip_tags($a);<br> }<br> // Example<br> $arr1 = array('<b>Car</b>', '<i>Bat</i>', array('<b>Car</b>', '<i>Bat</i>'));<br> $arr1 = strip_tags_d($arr1);<br> // Output<br> print_r($arr1);<br> ?>

Ausgabe:

PHP-strip_tags()

Im obigen Beispiel zeigen wir die Verwendung rekursiver Funktionen für die Funktion „strip_tags“. Daher können wir in der Ausgabe sehen, dass das Array in 2er-Schleifen gedruckt wird.

Fazit

Wie oben gezeigt, haben wir gesehen, wie man mithilfe der Funktion „strip_tags()“ einige unerwünschte HTML- und PHP-Tags aus dem Code entfernt. Diese Funktion kann die Eingabezeichenfolge analysieren und ihre Struktur extrahieren. Normalerweise schneidet oder ersetzt es die angegebenen HTML- oder PHP-Tags, die wir als Liste von Eingabeargumenten übergeben, die aus dem HTML-Dokument entfernt werden sollen. Dies wird auch in Fällen verwendet, in denen wir nur PHP-Tags und nicht HTML kürzen müssen und umgekehrt.

Empfohlener Artikel

Dies ist eine Anleitung zu PHP strip_tags(). Hier besprechen wir die Einführung in die PHP-Funktion „strip_tags()“ und ihre Beispiele sowie die Code-Implementierung. Sie können auch unsere anderen vorgeschlagenen Artikel lesen, um mehr zu erfahren –

  1. PHP-Frameworks
  2. PHP-Chop()
  3. PHP setlocale()
  4. PHP strtotime

Das obige ist der detaillierte Inhalt vonPHP-strip_tags(). 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
Vorheriger Artikel:file_put_contents in PHPNächster Artikel:file_put_contents in PHP