Heim PHP-Bibliotheken Andere Bibliotheken htmlpurifierPHP-Filterbibliothek
htmlpurifierPHP-Filterbibliothek

require_once '/path/to/HTMLPurifier.auto.php';

Gemäß den ThinkPHP-Spezifikationen muss HTMLPurifier für Erweiterungen von Drittanbietern, die nicht den ThinkPHP-Entwicklungsspezifikationen entsprechen, im Verzeichnis Library/Vendor abgelegt werden. Dann können wir HTMLPurifier.auto.php über die folgende Methode in das Rahmenprogramm einführen:

vendor('htmlpurifier.library.HTMLPurifier#auto');

Allerdings verwende ich hier ThinkPHP 3.2.1 und habe festgestellt, dass diese Methode nur in Funktionen und für Controller-Klassen verwendet werden kann. Eine solche Einführung ist nicht möglich richtig erkannt. Mit anderen Worten, wir können nur in der Datei common/function.php darauf verweisen.

Erstellen Sie ein HTMLPurifier-Objekt und implementieren Sie Rich-Text-Filterung

$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($dirty_html);

So konfigurieren Sie den HTMLPurifier-Filter

Um HTMLPurifier zu verwenden, liegt der Fokus immer noch auf der Konfiguration. Für das obige Programm haben wir über die Methode createDefault() ein Standardkonfigurationsobjekt erstellt. Wenn wir die Konfiguration ändern möchten, können wir die Einstellungen mit der Set-Methode konfigurieren. Die Methode lautet wie folgt:

$config->set('config_object', value, a=null);

Der erste Parameter ist das Attribut, das konfiguriert werden muss, der zweite Parameter ist der Wert des Attributs. Und was ist der konkrete Nutzen des dritten Parameters? Ich habe ihn noch nicht herausgefunden, aber ich habe ihn im Allgemeinen nicht verwendet. Ich werde ihn langsam studieren, wenn ich Zeit habe.

HTMLPurifiers Konfigurationsattribute können über seine Website abgefragt werden

Konfigurationsattributauswahl

HTMLPurifiers Konfigurationsdokumente sind hauptsächlich in zwei Ebenen unterteilt: Attr (Attribut), HTML (HTML-Tag), AutoFormat (automatisches Format), CSS (CSS-Konfiguration), Ausgabe (Ausgabekonfiguration) ... Die Auswahl der Unterkategorie kann durch Hinzufügen des Namens der Hauptkategorie abgeschlossen werden.

Wenn ich beispielsweise zulässige HTML-Tags wie p-Tags und a-Tags konfigurieren möchte, kann ich es wie folgt konfigurieren

$config->set('HTML.Allowed', 'p,a');

Auswahl von Attributwerten

Im offiziellen Dokument können Sie dies tun, nachdem Sie auf ein Attribut geklickt haben Sehen Sie sich die Erklärung dieses Attributs an. Dort erfahren Sie, dass der Werttyp (Typ) dieses Attributs String, Int, Array, Boolen ... ist.

Dann wird Ihnen auch der Standardwert dieses Attributs angezeigt, z. B. NULL , wahr, falsch usw. Das Format dieses Werts ist das gleiche wie das PHP-Format.

Whitelist-Filtermechanismus

HTMLPurifier verwendet einen Whitelist-Filtermechanismus und nur diejenigen, die von der Einstellung zugelassen werden, bestehen die Prüfung.

Einfaches Filterbeispiel

a, alle HTML-Tags im Text herausfiltern

/**
 * 过滤掉所有html标签很简单,原因则在白名单机制完成
 */
$config->set('HTML.Allowed', '');

b, das Hyperlink-Tag a und sein href-Link-Adressattribut beibehalten und den Zielattributwert automatisch als „_blank“ hinzufügen

$config->set('HTML.Allowed', 'a[href]');
$config->set('HTML.TargetBlank', true);

c, Vervollständigen Sie automatisch den Absatzcode und löschen Sie unnötige leere Tags

// 让文本自动添加段落标签,前提是必须允许P标签的使用
$config->set('HTML.Allowed', 'p');
$config->set('AutoFormat.AutoParagraph', true);
// 清除空标签
$config->set('AutoFormat.RemoveEmpty', true);
……


Haftungsausschluss

Alle Ressourcen auf dieser Website werden von Internetnutzern bereitgestellt oder von großen Download-Sites nachgedruckt. Bitte überprüfen Sie selbst die Integrität der Software! Alle Ressourcen auf dieser Website dienen nur als Referenz zum Lernen. Bitte nutzen Sie diese nicht für kommerzielle Zwecke. Andernfalls sind Sie für alle Folgen verantwortlich! Wenn ein Verstoß vorliegt, kontaktieren Sie uns bitte, um ihn zu löschen. Kontaktinformationen: admin@php.cn

Verwandter Artikel

Wie kann ich die Debugging-Ausgabe von TensorFlow stummschalten? Wie kann ich die Debugging-Ausgabe von TensorFlow stummschalten?

28 Oct 2024

Unterdrückung der Tensorflow-Debugging-AusgabeTensorflow gibt umfangreiche Informationen über geladene Bibliotheken, gefundene Geräte und andere Debugging-Daten aus ...

Wie erstellt und nutzt man statische Bibliotheken in g? Wie erstellt und nutzt man statische Bibliotheken in g?

24 Oct 2024

Dieser Artikel führt Entwickler zum Erstellen statischer Bibliotheken in C mit g an. Es zeigt, wie man Quellcode in Objektdateien kompiliert, statische Bibliotheken erstellt und diese in andere Projekte integriert. Durch die Nutzung dieses Ansatzes können Entwickler

Die am meisten unterschätzten Python-Bibliotheken, die Sie sofort verwenden sollten Die am meisten unterschätzten Python-Bibliotheken, die Sie sofort verwenden sollten

03 Nov 2024

„Warten Sie … es gibt andere Python-Bibliotheken als Pandas und NumPy?“ Wenn Sie das gerade gedacht haben: Willkommen im Club! Sicher, Pandas und NumPy sind großartig, aber es gibt eine ganze Welt unterschätzter Python-Bibliotheken, die Sie wie einen Programmier-Experten aussehen lassen können

JSqlParser – Problem mit der MySQL-Konvertierungsfunktion (Ausdruck, Typ). JSqlParser – Problem mit der MySQL-Konvertierungsfunktion (Ausdruck, Typ).

13 Dec 2024

Wir haben kürzlich unser Basis-Framework auf Springboot 3.3.5 und andere verwandte Bibliotheken aktualisiert. Während des Tests wurde mir ein Fehler gemeldet. Einige Abfragen würden mit JSqlParser 5.0 fehlschlagen. Hier ist eine einfache Demonstration: öffentlicher Klassentest { öffentliche statische Vo

Auf der Suche nach einem PHP/Python-Bibliotheksverwaltungsprogramm (ähnlich der Baidu-Bibliothek, die Dokumente/PDFs und andere Bibliotheken verwaltet) Auf der Suche nach einem PHP/Python-Bibliotheksverwaltungsprogramm (ähnlich der Baidu-Bibliothek, die Dokumente/PDFs und andere Bibliotheken verwaltet)

30 Sep 2016

Auf der Suche nach einem PHP/Python-Bibliotheksverwaltungsprogramm (ähnlich der Baidu-Bibliothek, die doc/pdf und andere Bibliotheken verwaltet) ~~ Es muss hauptsächlich über Suchfunktionen verfügen, insbesondere Funktionen zum Abrufen der Dateiklassifizierung/Datei-Tags, keine Online-Konvertierung erforderlich, online Stöbern!

Wie verknüpfe ich statische Bibliotheken, die von anderen statischen Bibliotheken abhängen? Wie verknüpfe ich statische Bibliotheken, die von anderen statischen Bibliotheken abhängen?

13 Dec 2024

Verknüpfen statischer Bibliotheken mit anderen statischen Bibliotheken: Ein umfassender AnsatzStatische Bibliotheken bieten einen praktischen Mechanismus zum Verpacken wiederverwendbarer...

See all articles