Suppression des balises de script du contenu HTML Question : Comment puis-je supprimer sélectivement uniquement balises du contenu HTML sans affecter les autres formats ?</p> <p><strong>Réponse :</strong></p> <p><strong>Utilisation d'expressions régulières (Regex)</strong></p> <p>Bien que cela ne soit pas recommandé pour analyser le HTML, une simple expression régulière peut être utilisée pour supprimer <script> tags :</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>$html = preg_replace('#<script(.*?)>(.*?)#is', '', $html);Copier après la connexion Utilisation de DOMDocument : Une approche plus fiable et plus sûre consiste à utiliser la classe DOMDocument : $dom = new DOMDocument(); $dom->loadHTML($html); $script = $dom->getElementsByTagName('script'); $remove = []; foreach($script as $item) { $remove[] = $item; } foreach ($remove as $item) { $item->parentNode->removeChild($item); } $html = $dom->saveHTML();Copier après la connexion Options supplémentaires : Utilisation La fonction native strip_tags() de PHP Bien qu'elle ne supprime pas sélectivement balises, il peut être utilisé pour supprimer toutes les balises HTML :</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>$html = strip_tags($html, '<p><a><b>');</pre><div class="contentsignin">Copier après la connexion</div></div> <p><strong>Utilisation de HTML Purifier</strong></p> <p>Si vous souhaitez effectuer une analyse HTML complète et des mesures de sécurité, envisagez d'utiliser la bibliothèque HTML Purifier :</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>$config = HTMLPurifier_Config::createDefault(); $config->set('Core.RemoveScript', true); $purifier = new HTMLPurifier($config); $html = $purifier->purify($html);</pre><div class="contentsignin">Copier après la connexion</div></div>