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...

Comprendre les choix de framework et de bibliothèque en JavaScriptComprendre les choix de framework et de bibliothèque en JavaScript

04Nov2023

Comprendre les options de framework et de bibliothèque en JavaScript nécessite des exemples de code concrets. Dans le monde actuel du développement Web, JavaScript est devenu un langage de programmation largement utilisé. Avec la popularité de JavaScript et l’expansion des scénarios d’application, de nombreux excellents frameworks et bibliothèques ont vu le jour les uns après les autres. Cependant, comment choisir le framework et la bibliothèque adaptés à votre propre projet est une question relativement complexe et déroutante. Dans cet article, je présenterai en détail plusieurs frameworks et bibliothèques JavaScript courants, et donnerai des codes spécifiques.

Des connaissances améliorées L'utilisation conjointe de ld et ldd de Linux peut nous aider à analyser les raisons de l'échec du chargement des fichiers de bibliothèque au moment de l'exécution.Des connaissances améliorées L'utilisation conjointe de ld et ldd de Linux peut nous aider à analyser les raisons de l'échec du chargement des fichiers de bibliothèque au moment de l'exécution.

20Feb2024

Habituellement, lorsque les développeurs et le personnel d'exploitation et de maintenance sont confrontés au problème de l'impossibilité de trouver les bibliothèques dépendantes lors de l'exécution d'un logiciel, ils peuvent utiliser certains outils pour suivre le processus de chargement au démarrage, tels que strace, gdb, etc. De plus, vous pouvez également utiliser les commandes ld et ldd pour vous aider à analyser la situation des bibliothèques dépendantes afin de résoudre le problème plus rapidement. Ces outils peuvent aider à localiser les bibliothèques de dépendances manquantes et guider les utilisateurs dans la prise des mesures appropriées pour résoudre les problèmes d'exécution des logiciels. Ici, nous analysons le fichier de bibliothèque dynamique libmpi_usempif80.so et les autres bibliothèques dynamiques dont il dépend comme cause du problème. Tout d’abord, présentons comment la commande ld peut nous aider à analyser de quelles autres bibliothèques dépend la bibliothèque mpi_usempif80 ? Lorsque la bibliothèque mpi_usempif80 est chargée,

Intégration de la bibliothèque de fonctions PHP et de la bibliothèque tierceIntégration de la bibliothèque de fonctions PHP et de la bibliothèque tierce

22Apr2024

Les bibliothèques de fonctions et les bibliothèques tierces en PHP peuvent étendre les fonctionnalités des applications. La bibliothèque de fonctions fournit des fonctions prédéfinies qui peuvent être incluses via l'instruction include. Des bibliothèques tierces sont disponibles à partir de sources telles que Packagist, GitHub et installées à l'aide de Composer. Implémentez le chargement automatique des classes via un chargeur automatique, tel que le chargement automatique de la bibliothèque Guzzle. Apprenez à utiliser la bibliothèque tierce Dompdf pour générer des fichiers PDF à travers des cas pratiques, notamment le chargement de la bibliothèque, le chargement de contenu HTML et la sortie de fichiers PDF. L'intégration de bibliothèques de fonctions et de bibliothèques tierces étend considérablement les fonctionnalités des applications PHP et améliore l'efficacité du développement et les performances des projets.

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èque tierce de modèles Golangbibliothèque tierce de modèles Golang

13Aug2024

Cet article traite de l'utilisation de bibliothèques tierces pour les modèles Golang. Il décrit les avantages de l'utilisation de telles bibliothèques, notamment des fonctionnalités accrues, des performances améliorées, une meilleure sécurité, la prise en charge de plusieurs langages de modèles et

See all articles