recherche
MaisonBibliothèques PHPAutres bibliothèquesbibliothèque de filtrage htmlpurifierPHP
bibliothèque de filtrage htmlpurifierPHP

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

Selon les spécifications ThinkPHP, pour les extensions tierces qui ne sont pas conformes aux spécifications de développement ThinkPHP, HTMLPurifier doit être placé dans le répertoire Library/Vendor. Ensuite, nous pouvons introduire HTMLPurifier.auto.php dans le programme-cadre via la méthode suivante :

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

Cependant, j'utilise ThinkPHP 3.2.1 ici et j'ai découvert que cette méthode ne peut être utilisée que dans les fonctions, pour les classes de contrôleurs. Une telle introduction ne peut pas être correctement reconnu. Autrement dit, nous ne pouvons le référencer que dans le fichier common/function.php.

Créez un objet HTMLPurifier et implémentez le filtrage de texte enrichi

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

Comment configurer le filtre HTMLPurifier

Pour utiliser HTMLPurifier, l'accent est toujours mis sur la façon de le configurer. Pour le programme ci-dessus, nous avons créé un objet de configuration par défaut via la méthode createDefault(). Si nous souhaitons modifier la configuration, nous pouvons utiliser la méthode set pour configurer les paramètres. La méthode est la suivante :

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

Le premier paramètre est l'attribut qui doit être configuré, le deuxième paramètre est la valeur de l'attribut, et quelle est l'utilisation spécifique du troisième paramètre ? Je ne l'ai pas encore compris, mais je ne l'ai pas utilisé en général, je l'étudierai lentement quand j'aurai le temps.

Les attributs de configuration de HTMLPurifier peuvent être interrogés via son site Web

Sélection des attributs de configuration

Les documents de configuration de HTMLPurifier sont principalement classés en deux niveaux. Les principales catégories sont Attr (attribut), HTML (balise html), AutoFormat (format automatique), CSS. (configuration css), Sortie (configuration de sortie)... La sélection des sous-catégories peut être complétée en ajoutant le nom de la catégorie principale. Ajout du nom de la sous-catégorie.

Par exemple, si je souhaite configurer les balises html autorisées, telles que les balises p et a, je peux le configurer comme suit

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

Sélection des valeurs d'attribut

Dans le document officiel, après avoir cliqué sur un attribut, vous pouvez voir l'explication de cet attribut, Il vous dira que le type de valeur (Type) de cet attribut est String, Int, Array, Boolen...

Ensuite il vous indiquera également la valeur par défaut de cet attribut, comme NULL , vrai, faux, etc. Le format de cette valeur est le même que celui de PHP.

Mécanisme de filtrage de liste blanche

HTMLPurifier utilise un mécanisme de filtrage de liste blanche, et seuls ceux qui sont autorisés par le paramètre passeront l'inspection.

Exemple de filtrage de base

a, filtrez toutes les balises html dans le texte

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

b, conservez la balise de lien hypertexte a et son attribut d'adresse de lien href, et ajoutez automatiquement la valeur de l'attribut cible comme '_blank'

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

c, Complétez automatiquement le code du paragraphe et supprimez les balises vides inutiles

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


Clause de non-responsabilité

Toutes les ressources de ce site proviennent d'internautes ou sont réimprimées par les principaux sites de téléchargement. Veuillez vérifier vous-même l'intégrité du logiciel ! Toutes les ressources de ce site sont uniquement à titre de référence d'apprentissage. Merci de ne pas les utiliser à des fins commerciales. Sinon, vous serez responsable de toutes les conséquences ! En cas d'infraction, veuillez nous contacter pour la supprimer. Coordonnées : admin@php.cn

Article connexe

Comment créer une bibliothèque statique à partir de plusieurs autres bibliothèques statiques ?Comment créer une bibliothèque statique à partir de plusieurs autres bibliothèques statiques ?

17Dec2024

Création d'une bibliothèque statique liée à d'autres bibliothèques statiquesLors de la création d'une bibliothèque statique qui s'appuie sur des dépendances de plusieurs autres...

Bibliothèque de liens dynamiques C#Bibliothèque de liens dynamiques C#

27Dec2016

Les bibliothèques de liens dynamiques sont un moyen de mettre en œuvre le concept de bibliothèques de fonctions partagées. L'extension est ".dll". Les bibliothèques de liens dynamiques permettent à un processus d'appeler des fonctions qui ne font pas partie de son code exécutable.

Bibliothèques statiques ou partagées : quel type de bibliothèque devriez-vous choisir pour votre projet ?Bibliothèques statiques ou partagées : quel type de bibliothèque devriez-vous choisir pour votre projet ?

17Dec2024

Examiner la distinction : bibliothèques statiques et bibliothèques partagéesLes bibliothèques statiques et partagées jouent un rôle crucial dans le développement de logiciels, offrant...

Quelle bibliothèque mathématique de précision arbitraire convient aux calculs de grands nombres entiers ?Quelle bibliothèque mathématique de précision arbitraire convient aux calculs de grands nombres entiers ?

03Nov2024

Bibliothèques mathématiques de précision arbitraire : choix essentiels pour gérer les calculs de grands nombres entiersLes bibliothèques mathématiques de précision arbitraire fournissent des informations inestimables...

Comment réussir l'intégration de la bibliothèque Unirest C dans Visual Studio 2012 ?Comment réussir l'intégration de la bibliothèque Unirest C dans Visual Studio 2012 ?

20Dec2024

Comment intégrer des bibliothèques externes dans Visual Studio 2012L'inclusion de bibliothèques dans les projets Visual Studio 2012 permet aux développeurs de tirer parti de...

.dylib vs .so sur macOS : quand dois-je utiliser quel type de bibliothèque partagée ?.dylib vs .so sur macOS : quand dois-je utiliser quel type de bibliothèque partagée ?

28Nov2024

Comprendre les différences entre les bibliothèques .so et .dylib sur macOSDans l'écosystème macOS, l'utilisation de bibliothèques dynamiques est vitale pour le code...

See all articles