从 HTML 内容中删除脚本标签
问题:
如何有选择地仅删除
答案:
使用正则表达式 (Regex)
虽然不推荐为了解析 HTML,可以使用一个简单的正则表达式来删除 <script> 。标签:</script>
$html = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $html);
使用 DOMDocument:
更可靠、更安全的方法是使用 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();
附加选项:
使用 PHP 的原生 strip_tags() 函数
虽然它不会选择性地删除 <script>标签,它可用于删除所有 HTML 标签:</script>
$html = strip_tags($html, '<p><a><b>');
使用 HTML Purifier
如果您希望执行全面的 HTML 解析和安全措施,请考虑使用HTML Purifier 库:
$config = HTMLPurifier_Config::createDefault(); $config->set('Core.RemoveScript', true); $purifier = new HTMLPurifier($config); $html = $purifier->purify($html);
以上是如何从 HTML 内容中删除 `` 标签?的详细内容。更多信息请关注PHP中文网其他相关文章!