【发布时间】:2011-09-30 21:04:06
【问题描述】:
我正在寻找一种从 html 字符串中删除所有 JavaScripts 标签的方法。
以下正则表达式工作正常,但我想添加一个例外:
$html = preg_replace('#<script[^>]*>.*?</script>#is', '', $html);
如何添加一个规则以使 text/html 类型的脚本被忽略?
<script type="text/html" ... > ... </script>
有什么建议吗?
提前致谢。
【问题讨论】:
-
使用 HTML 解析器代替正则表达式:php.net/manual/en/book.dom.php
-
酷,这就是我正在做的事情。目前使用 Zend_Dom_Query。你知道 xpath 的选择器是什么样子的吗?
-
不允许
preg_replace在正则表达式上指定e标志,以便将替换字符串视为代码。您不能将其与查找type="text/html"的替换表达式一起使用,如果它存在则返回整个脚本标记,否则返回空白。
标签: php javascript regex tags