因为这个问题用正则表达式标记,我将在这种情况下用穷人的解决方案回答:
$html = preg_replace('##is', '', $html);
但是,正则表达式不是用于解析HTML / XML,即使你写出最终会破坏的完美表达式,也不值得,但在某些情况下,快速修复某些标记很有用,而且快速修复时,忘记安全。仅对您信任的内容/标记使用正则表达式。
请记住,任何用户输入的内容都应被视为不安全。
这里更好的解决方案是使用DOMDocument专为此设计的解决方案。这是一个片段,演示了如何轻松,干净(与正则表达式相比),(几乎)可靠和(几乎)安全是这样做的:
$html = <<
...
HTML;
$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();
我故意删除了HTML,因为即使这样也可以使用bork。