Was ist der Unterschied zwischen wp_strip_all_tags und wp_filter_nohtml_kses?


7

Entnommen aus den Artikeln, auf die unten verwiesen wird:

wp_strip_all_tags()

"Entfernen Sie ordnungsgemäß alle HTML-Tags, einschließlich Skript und Stil."

wp_filter_nohtml_kses()

"Entfernt den gesamten HTML-Code im Inhalt."

Ref:

Diese Funktionen scheinen genau den gleichen Zweck zu erfüllen. Wie unterscheiden sie sich?

Antworten:


11

Die Funktion wp_strip_all_tags () entfernt den gesamten HTML-Code, einschließlich des Inhalts von Skript- und Stil-Tags.

Die PHP-Funktion strip_tags () macht im Wesentlichen dasselbe, außer dass der Inhalt von Skript- und Stil-Tags nicht entfernt wird. Die Funktion wp_strip_all_tags () von WP verwendet dies, nachdem die Skripte und Stile manuell entfernt wurden.

Die Funktion wp_filter_nohtml_kses () verwendet kses, um den gesamten HTML-Code zu entfernen. Der Hauptunterschied ist die Engine, die zum Parsen des HTML-Codes verwendet wird. PHPs strip_tags () geht nicht besonders gut mit fehlerhaftem oder absichtlich fehlerhaftem HTML um, da es keine Validierung des HTML durchführt. Die kses-Engine versucht, fehlerhaftes HTML besser zu behandeln, ist jedoch auch kein vollständig vollständiger HTML-Parser. Es ist auch viel langsamer.

Die Funktion wp_strip_all_tags () wird im Allgemeinen bevorzugt. Es ist gut genug für die meisten Fälle. Die kses-Version ist der Vollständigkeit halber größtenteils enthalten, kann jedoch nützlich sein, wenn Sie mit besonders schlecht geformtem HTML arbeiten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.