Skript-Tags aus HTML-Inhalten entfernen Frage: Wie kann ich nur selektiv entfernen? Tags aus HTML-Inhalten hinzufügen, ohne andere Formatierungen zu beeinflussen?</p> <p><strong>Antwort:</strong></p> <p><strong>Verwendung regulärer Ausdrücke (Regex)</strong></p> <p>Obwohl nicht empfohlen Zum Parsen von HTML kann ein einfacher regulärer Ausdruck verwendet werden, um <script> zu entfernen. Tags:</p> <pre>$html = preg_replace('#<script(.*?)>(.*?)#is', '', $html); Verwendung von DOMDocument: Ein zuverlässigerer und sichererer Ansatz ist die Verwendung der DOMDocument-Klasse: $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(); Zusätzliche Optionen: Verwenden Die native Funktion „strip_tags()“ von PHP Sie entfernt zwar nicht selektiv; Tags können damit alle HTML-Tags entfernt werden:</p> <pre>$html = strip_tags($html, '<p><a><b>');</pre> <p><strong>HTML Purifier verwenden</strong></p> <p>Wenn Sie umfassende HTML-Analyse- und Sicherheitsmaßnahmen durchführen möchten, sollten Sie die Verwendung in Betracht ziehen die HTML Purifier-Bibliothek:</p> <pre>$config = HTMLPurifier_Config::createDefault(); $config->set('Core.RemoveScript', true); $purifier = new HTMLPurifier($config); $html = $purifier->purify($html);</pre>