Réparer une chaîne HTML en PHP
En récupérant du contenu via un WYSIWYG en PHP, il y a des risques que des balises HTML mal formatées apparaissent. Pour éviter ce désagrément, PHP nous fournit une bibliothèque intitulée "Tidy". Cette dernière permet de nettoyer et manipuler des éléments HTML.
4 février 2016 - Wakonda - PHP
Pour l'utiliser, il faut, selon votre situation, soit simplement l'activer (si vous utilisez WampServer, par exemple), soit l'installer.
Voici un exemple simple d'utilisation :
<?php
ob_start();
?>
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</i>
</body>
</html>
<?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>
Dans notre exemple, le code HTML est erroné. En effet, notre balise "<p>" n'est pas fermée et le mot "error" est entouré d'une balise fermante "i" jamais ouverte. La fonction "tidy_repair_string" va simplement nettoyer le code et nous renvoyer un HTML tout propre.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>
La fonction susmentionnée a donc fermé la balise "p", supprimé la balise "i" et ajouté un "doctype".
Si vous souhaitez uniquement parser le "body" d'un HTML, il suffit d'appeler l'option "show-body-only" :
$str = “<p>error.”
tidy_repair_string($str, array('show-body-only' => true), "utf8");
echo $str;
Le code ci-dessus retournera le code HTML suivant :
<p>error.</p>
Pour plus d'informations :
4 février 2016 - Wakonda - PHP
Rechercher
Tags
Articles récents
- Quel est le but de l'attribut "role" en HTML ?
- Changer la couleur de l'espace réservé (placeholder)
- Attention à cet email d’arnaque !
- Supprimer un fichier d'un référentiel Git sans le supprimer du système de fichiers local
- JS - Récupérer le dernier élément d'un tableau
- JS - Prévisualiser une image avec son upload
- PHP - Convertir une chaîne de caractères en un booléen
- PHP : Vérifier si une session a déjà été démarrée
- Créer un APK ou un AAB en ligne de commandes
- L'opérateur !! en Javascript